Жёлтый чайник 1С (Черненко Виталий)
5.3K subscribers
200 photos
3 videos
3 files
214 links
Только настоящий джедай сможет сдержать гнев и познать Силу Желтого программирования.

Make IT, not war

По всем вопросам: @SeiOkami

https://github.com/SeiOkami
https://seiokami.github.io/
https://infostart.ru/profile/309462/
Download Telegram
Ц = Новый Цвет(325,,);
Сообщить(Ц);
Anonymous Quiz
42%
325, 0, 0
21%
255, 0, 0
11%
69, 0, 0
5%
0, 0, 0
21%
Исключение
🔥15👍7
Ц = Новый Цвет(1.1, 1.5, 1.9);
Сообщить(Ц);
Anonymous Quiz
25%
1, 1, 1
9%
1, 1, 2
46%
1, 2, 2
4%
2, 2, 2
16%
Исключение
👍11
Ну и под конец
Ц = Новый Цвет(Истина, "1", "1с");
Сообщить(Ц);
Anonymous Quiz
3%
0, 0, 0
3%
0, 1, 0
6%
1, 0, 0
13%
1, 1, 0
33%
1, 1, 1
41%
Исключение
😁7😱7🔥4👍1🤩1
1С:Лайфхак: Конструктор запроса в расширении

В модулях расширения конструктор запроса видит только те метаданные, которые есть в этом расширении.
Но часто приходится делать залипушку, которое просто подменит пару методов конфигурации. И добавлять в расширение все объекты и их поля не очень удобно.

Что же делать? 🤔

1. Использовать внешнюю обработку.
Просто создаем внешнюю обработку, копируем в неё модуль\метод\кусок кода и открываем конструктор запроса. Потом переносим обратно.

2. Использовать шаблон текста
Интересно, что если открывать конструктор запроса из шаблона текста, то он работает в контексте основной конфигурации. А значит и видит метаданные конфигурации.
Простой шаблон текста:
"<?"", ТекстЗапроса>"
Его так же можно включить в контекстное меню.

Вот только создать таким образом можно только новый запрос =(
Я не нашёл способа при помощи шаблона текста открыть конструктор для редактирования существующего запроса. Если найдёте способ - скидывайте в комментарии.

3. Редактировать запрос в режиме Предприятия
Оба метода выше видят только те метаданные, что есть в конфигурации.
Но если запустить конструктор в режиме Предприятия, то сможем писать запрос, обращаясь ко всем существующим в ИБ данным.
Вот только придётся либо открывать в обычных формах, либо пользоваться так не полюбившимся 1Сникам "тонким конструктором".
Ну или пользоваться альтернативами (например, IS Toolkit).

А если вы знаете ещё способы, то пишите в комментах👇
EDT можно не предлагать 😁
👍16
Сообщить( 9 + "6E1" );
Anonymous Quiz
30%
96E1
6%
961
5%
96
9%
69
2%
9
48%
Исключение
😱22👍9😁8🎉3🔥2🤮1
Сообщить( + "+" + "၁" + "२" + "༣" + "٤" );
Anonymous Quiz
31%
Кракозябра
24%
10
45%
Исключение
😱13🔥10👍3😁1
ЧисловыеСимволы.erf
7.3 KB
Данным отчетом можно вывести все "числовые" символы с кодами и их цифровыми значениями.

JS нервно курит в стороне
👍11
Жёлтый чайник 1С (Черненко Виталий)
GIF
1С:Лайфхак: Всплывающая группа

Бывает так, что пилишь какую-то форму (например, внешней обработки). И по интерфейсной задумке нужно вынести некие поля на отдельную форму, которая будет открываться и блокировать интерфейс владельца.

Вроде ничего сложного. Но в ряде случаев муторно.

Нужно в новой форме продублировать какие-то реквизиты. Передать их. Потом получить обратно. А может понадобятся какие-то методы из основной формы. Делаешь их экспортными в основной форме и вызываешь в подчиненной. На клиенте их достать, но на сервере уже не выйдет. Приходится копипастить. А потом вспоминаешь, что обработку можно и встроить и открывать внешней. И в таком случае нужно использовать разные адреса к форме.

Но в ряде случаев можно этого всего избежать, если использовать группу с вариантом поведения "Всплывающая".

У групп есть три варианта поведения: Обычное, Свертываемая и Всплывающая. Первые два используются довольно часто, а вот последняя встречается редко.

Такая группа скрывает внутри себя все помещенные в неё элементы. А когда пользователь нажимает на её заголовок, то содержимое "всплывает". Выглядит похоже на открытие новой формы с блокировкой владельца. Но элементы не появляются в отдельном окне, а просто перекрывают основные данные.

На гифке выше пример такой группы. Есть просто реквизиты формы, а есть таблица. Она спрятана внутри всплывающей группы и появляется только когда нажать на заголовок. И всё это делает платформа сама без дополнительных мучений разработчика.

А вы применяли такое поведение группы? Может есть какие-то неочевидные варианты использования или же недостатки?

Добро пожаловать в комментарии👇😁

——————
@JuniorOneS
👍22🔥6
1С.СрезПоследних()

Свежая порция около1Сных новостей.

Оптимизация в 8.3.22

На Зазеркалье вышла новость об оптимизации некоторых операций в 8.3.22

Передача файлов с клиента на сервер, использование нескольких Дата-акселераторов и работа с конфигурациями.
Список не особо большой, но зато операции действительно частые. Ускорено обновление, сравнение конфигураций, выгрузка в *.cf.
Передача файлов в предприятии ускорено "в несколько раз". И снято ограничение на размер файлов.

В общем, изменения приятные. Надеюсь, 1С продолжит оптимизировать платформу и когда-нибудь она действительно станет выполнять действия не более 1Секунды. 😁


1C:DevCon.2

Прошла онлайн-конференция для 1С-разработчиков. Записи уже доступны в личном кабинете разработчика.

Я пока посмотрел несколько видео. Понравилось про 1С:Элемент.
Похоже, что 1С всерьёз взялась за разработку веб-сайтов. Выглядит интересно.
В открытый доступ ещё не вышла, но в конце видео есть сообщение:

Для участия в пилотных проектах пишите на betaplatform@1c.ru

В целом, конференция организована хорошо. Доклады короткие и без тягомутины. Как я понял, они записаны были заранее (а не онлайн-вебинары). А вот "в живую" были какие-то круглые столы. Но их записей как раз и нет 😏. А жаль, было бы интересно послушать обсуждения докладов.


1C:SysDevCon.2

И ещё одна конференция от 1С. Как пишут на сайте:
Это конференция не про разработку бизнес-приложений, а про то, что там «под капотом» – наш опыт создания технологий для их разработки.

Среди тем TCP Service Mesh, low-code технологии, Datamatrix, Root Cause Analisys Monitoring и куча других умных слов.
Доклады, думаю, стоит посмотреть тем, кто интересуется разработкой не только на 1С. Ну или "для общего развития"👌


Вирус взял подработкой
В модулях 1С нашли вредоносный код
Данные нескольких десятков компаний были украдены через вредоносный код в модулях 1С

Такие громкие заголовки забегали по новостным статьям пару дней назад. Вот, например, на Хабре.

Вообще, формулировка звучит смешно. Примерно как:
Данные нескольких десятков компаний были украдены через вредоносный код в модулях JAVA / C# / PYTHON

Оно вроде и правда. А вроде и смысла не имеет. Тем более что:
Неназванные изданием аусорсеры ставили такие доработанные модули 1С компаниям из сферы торговли и дистрибуции ПО

Т.е. какие-то редиски обслуживали клиентов и ставили им нехороший код. Всё достаточно прозаично.
Зато такие заголовки любят всякие "труЪ"-программисты, которые 1С в глаза не видели, но при этом уверены в никчемности отечественного продукта 😆

Но есть в статье интересная фраза: "RTM Group выяснила, что доработанные модули 1С в момент проверки лицензионного ключа отправляли содержащиеся в них сведения о клиентской базе, платежах и потенциальных договорах на определенный адрес электронной почты, заранее прописанный в системе."

1С на это отвечает, что "проверка факта наличия лицензии их программного продукта производится на уровне ядра системы, код которого закрыт и не может быть изменен."

И действительно у 1Сника нет возможности вклиниться в код проверки лицензии 1С.
И тут либо редиски нашли-таки способ (как-то пропатчили платформу и т.п.), либо же "Эксперты RTM Group" не очень понимают как вообще устроена 1С. Небось ещё и сертификат "эксперта" не имеют )
Лично я думаю, что могло быть и то и другое. И одновременно.


А на этом с пока всё. Может у вас есть ещё интересная новость, которая не попала в СрезПоследних() ?
Делитель в комментариях 👇👌

——————
@JuniorOneS
👍12🔥8🥰1
Какие возможны числа?
ГСЧ = Новый ГенераторСлучайныхЧисел;
Число = ГСЧ.СлучайноеЧисло(1,3);
Anonymous Quiz
72%
1,2,3
8%
1,2
4%
2,3
16%
2
👍3
Недокументированная возможность генератора случайных чисел.

При помощи дробного числа в границе
можно указать вероятность выпадения числа.

Например, здесь мы регулируем вероятность выпадения числа 1:
ГСЧ.СлучайноеЧисло(0, 0.1); 
ГСЧ.СлучайноеЧисло(0, 0.01);
ГСЧ.СлучайноеЧисло(0, 0.001);

Чем меньше дробная часть, тем меньше шансов выпадения (см. скрины).

P.S.: думаю, вы понимаете, что не стоит пользоваться этой багофичей на реальных проектах 😁
🔥23👍2👏2❤1🤬1
😱17🤯13😁7🔥4❤1
Недокументированная возможность у функции Дата()

Д  = Дата("100.1.2022 0:0:0"))
Этот кусок кода получит дату:
0 января 2022 + 100 дней = 10.04.2022 0:00:00

То есть, если число дней больше, чем существующих в месяце, то 1С работает по принципу ДобавитьКДате(). Просто добавляет к дате число дней, каждый раз при переполнении переходя к следующему месяцу.

Ещё пример:
Д - Дата("1.3.2022 0:0:-1")
;
Данный кусок кода породит дату по формуле:
1 марта 2022 года - 1 секунда

Т.е. , мы получим конец последнего дня февраля 22 года.
Здесь мы уже вычитаем 1 секунду. И тем самым получаем конец февраля.

Но при этом, если порог доступной в 1С даты превышен, то мы получаем пустое значение.
Сообщить(Дата("1.1.9999999999 0:0:0"));
Результатом будет пустая дата. Не ошибка (что опять таки довольно странно). Просто пустая дата.

Так что, используя платформенный метод Дата(), помните, что он может сработать не совсем так, как вы предполагаете. Особенно, когда в метод передаются данные "из вне" 😁

Эту интересную особенность прислал @codmal. А если у вас есть чем поделиться, то пишите в комментариях или ЛС 👍
🔥29👍19❤2