Флибсута всё..
К сожалению пришла новость, что создатель сайта филибусты из-за тяжелой болезни скоро покинет наш мир. А вместе с ним и его детище. Очень жаль. Еще одна эпоха ушла, читал книги скачанные оттуда последние 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
// добвление новыелс=внешниеисточникиданных.ОтчетыДля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); КонецЦикла; |
Ранее уже делал подобную схему, но вышло слишком дорого и сложно. Поэтому реле времени своими руками буду упрощать и удешевлять 😉 Во первых уберем индикатор, соответственно сдвиговый регистр будет не нужен. Из индикации добавим светодиод, который будет показывать включено или выключено реле. Так-же подумав, решил добавить кнопку ручного включения/выключения реле. Сердцем будет микросхема attiny85. Так-же в схему добавил и блок питания (HLK-PM01), чтоб вся конструкция была единой платой
Принципиальная схема (потыкать в эмуляторе можно тут):
Схема на текстолите:
Ну и скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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р. Ну собственно это цена реле времени своими руками уже готового если покупать на валдберис. Но тут то своими руками 😉
Хм..однако. Попробовал новую нейросеть для сочинения музыки и накладывания слов на мотив музыки. И был удивлён. Прогресс очевиден, и музыка и песни получающиеся действительно пригодны для прослушивания.
Вот пример того что получилось:
Попробовать самому можно здесь.