Флибсута всё..
К сожалению пришла новость, что создатель сайта филибусты из-за тяжелой болезни скоро покинет наш мир. А вместе с ним и его детище. Очень жаль. Еще одна эпоха ушла, читал книги скачанные оттуда последние 10+ лет
Жизнь замечательных грибов
Сюда тащатся заметки из жизни
К сожалению пришла новость, что создатель сайта филибусты из-за тяжелой болезни скоро покинет наш мир. А вместе с ним и его детище. Очень жаль. Еще одна эпоха ушла, читал книги скачанные оттуда последние 10+ лет
Предложило мне тут приложение HH оставить отзывы о работодателях, у которых пришлось в своё время поработать. Попытался оставить. Как итог: положительные отзывы публикуются моментально. Отрицательные — вот уже пару недель пытаюсь опубликовать, и все не проходят модерацию. Но я упорный. всё время меняю формулировки.. надеюсь кому то из модераторов надоест уже это и нажмут кнопку «пропустить».
P.S. Ну собственно это и ожидаемо, полистал несколько «работодателей» — плохих отзывов нет. Хотя точно знаю, что компания шлак.
Как то упустил эту возможность платформы 1С и никогда ранее не использовал. А тут вдруг прилетела задача поработать файлами большого размера (xlsx, csv), на основании данных в которых нужно строить различного вида отчёты. Пришла мысль: а почему бы не загрузить данные этих файлов в БД, а затем уже спокойно стоить на основании этих данных отчёты. Какие-то регистры, справочники и т.п. создавать в конфигурации для этого посчитал излишним. Самое правильное, подумал я, хранить всё вообще в какой-то сторонней базе (в моём случае в PostgreSQL). А 1С использовать только для вывода и формирования отчётов. Вот тут то я и вспомнил, что когда то мельком читал про «внешние источники данных» в 1С. Значит пришло время попробовать хранение информации во внешних источниках данных.
Сначала создам БД, с таблицами ls и shemes со структурой вида::

, где id — автоинкримент типа integer. Забегая вперед, следует отметить, что 1С не умеет при добавлении данных во внешние источники данных, передавать инкрементальное значение, а потому создадим триггер, который будет выполнятся перед транзакцией запроса INSERT, и заменяет значение id, на следующее по порядку:


Подготовка закончена. Теперь подготовим платформу 1С. А именно необходимо установить драйвер ODBC. Под Linux ставим из репозитария, под Windows скачиваем и устанавливаем отсюда: https://www.postgresql.org/ftp/odbc/releases/REL-16_00_0005-mimalloc/
Далее необходимо зайти в конфигуратор 1С и добавить новый источник данных и таблицу в нём. При создании таблицы, необходимо выбрать «Выбрать из списка таблиц внешнего источника данных», и построить строку соединения с БД, вида:

После чего, будут доступны для добавления в конфигуратор таблицы БД:

После того как нажмем «Готово», в конфигураторе будет что-то вроде:

Далее остаётся научится читать,писать и удалять эти данные:
// добвление
новыелс=внешниеисточникиданных.ОтчетыДля1С.Таблицы.reports_1c_public_ls.СоздатьОбъект();
новыелс.name="4232344";
новыелс.Записать();
// изменение
мХарактеристика = внешниеисточникиданных.ОтчетыДля1С.Таблицы.reports_1c_public_ls.НайтиПоПолю("id",3);
мОбъект = мХарактеристика.ПолучитьОбъект();
мОбъект.name = "Уря! Чебуршка родил слона!";
мОбъект.Записать();
//удаление
мХарактеристика = внешниеисточникиданных.ОтчетыДля1С.Таблицы.reports_1c_public_ls.НайтиПоПолю("id",3);
мОбъект = мХарактеристика.ПолучитьОбъект();
мОбъект.Удалить();
// чтение
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| reports_1c_public_ls.id КАК id,
| reports_1c_public_ls.name КАК name,
| reports_1c_public_shemes.name КАК name1
|ИЗ
| ВнешнийИсточникДанных.ОтчетыДля1С.Таблица.reports_1c_public_ls КАК reports_1c_public_ls
| ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.ОтчетыДля1С.Таблица.reports_1c_public_shemes КАК reports_1c_public_shemes
| ПО reports_1c_public_ls.sheme = reports_1c_public_shemes.id";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
сообщить(ВыборкаДетальныеЗаписи.name);
сообщить(ВыборкаДетальныеЗаписи.name1);
КонецЦикла;
Update 16/09/2025: таки автоувеличение идентификатора умеет. Достаточно его указать как «только чтение» в 1С:

Но можно и с триггерами мудрить для желающих 😉
Ранее уже делал подобную схему, но вышло слишком дорого и сложно. Поэтому реле времени своими руками буду упрощать и удешевлять 😉 Во первых уберем индикатор, соответственно сдвиговый регистр будет не нужен. Из индикации добавим светодиод, который будет показывать включено или выключено реле. Так-же подумав, решил добавить кнопку ручного включения/выключения реле. Сердцем будет микросхема attiny85. Так-же в схему добавил и блок питания (HLK-PM01), чтоб вся конструкция была единой платой
Принципиальная схема (потыкать в эмуляторе можно тут):

Схема на текстолите:


Ну и скетч:
bool myClock[]={1,0,1,0,0,0,0,0,0,0,0,0,0,0};
int myClock_len=sizeof(myClock);
int delayTime=6000;
bool button_active=false;
int inc=0;
uint32_t myTimer1;
int relay_pin = 4;
void setup() {
pinMode(0, OUTPUT);
pinMode(2, INPUT_PULLUP);
digitalWrite(0, HIGH); // Включение светодиода
pinMode(relay_pin,OUTPUT);
}
void loop() {
if (millis()-myTimer1>=delayTime||millis()-myTimer1<0){
myTimer1=millis();
if (button_active==false){
if (myClock[inc]==0){
digitalWrite(0, LOW); // Выключение светодиода
digitalWrite(relay_pin,LOW);
} else {
digitalWrite(0, HIGH); // Включение светодиода
digitalWrite(relay_pin,HIGH);
};
inc++;
if (inc>myClock_len){
inc=0;
};
};
};
if (digitalRead(2)==0){
if (button_active==false){
digitalWrite(0, HIGH); // Включение светодиода
digitalWrite(relay_pin,HIGH);
button_active=true;
} else {
button_active=false;
digitalWrite(0, LOW); // Выключение светодиода
digitalWrite(relay_pin,LOW);
};
delay(1000);
};
}
Вот так готовлю почву чем заниматься долгими зимними вечерами.. Итоговая стоимость предварительно, вышла примерно такая:
Итого — примерно 600р. Ну собственно это цена реле времени своими руками уже готового если покупать на валдберис. Но тут то своими руками 😉
Хм..однако. Попробовал новую нейросеть для сочинения музыки и накладывания слов на мотив музыки. И был удивлён. Прогресс очевиден, и музыка и песни получающиеся действительно пригодны для прослушивания.
Вот пример того что получилось:
Попробовать самому можно здесь.
