Жёлтый чайник 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
А какой самодельный конструктор объектов попадался на глаза? И может какой даже используете сами?
🤔13👍7💩7
↔️ Контакт между формой и ПриПолученииДанныхНаСервере()

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

💿 Вы можете помнить, что в "обычных" формах было событие ПриВыводеСтроки(), которое позволяло оформить строки таблицы и как-то наполнить данными

В "управляемых" формах долго не было аналога, но в какой-то момент вендор всё же дал нам событие "ПриПолученииДанныхНаСервере()".
И вроде бы всё хорошо, но событие-то НаСервереБезКонтекста. А значит внутри нельзя обработать другие данные формы или же просто что-то кэшировать между вызовами события.


💡Нельзя ли? Конечно, можно!

И в этом нам поможет структура, которая доступна по адресу:

ДинамическийСписок.КомпоновщикНастроек.Настройки.ДополнительныеСвойства

Например, если мы в ПриСозданииНаСервере() вставим в доп. свойства какое-то соответствие, то сможем использовать его внутри события ПриПолученииДанныхНаСервере() из коллекции Настройки.ДополнительныеСвойства.
⬇️

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ДинамическийСписок.КомпоновщикНастроек.Настройки
.ДополнительныеСвойства.Вставить("Кэш", Новый Соответствие);

КонецПроцедуры

&НаСервереБезКонтекста
Процедура ДинамическийСписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)

Кэш = Настройки.ДополнительныеСвойства.Кэш;

КонецПроцедуры

✔️ Такая коллекция будет едина между вызовами события, а значит её можно использовать в качестве кэша и ускорять получения доп. данных списка. Но ещё эта коллеция будет доступна в других методах формы. Таким образом, к примеру, у нас реализован функционал по сбору истории отборов ДС. Позволяет в любой момент включить сбор статистики и потом проанализировать какие отборы\сортировки\группировки устанавливают пользователи и как им можно облегчить жизнь.

❌ К сожалению, нельзя передать напрямую сложные данные. Они либо упадут в ошибку, либо их изменения не будут доступны на клиенте. Например, можно передать напрямую ДанныеФормыКоллекция, но после открытия она отвяжется от формы и будет независимой коллекцией, а значит изменения на форме отображаться не будут.

✔️ Но зато можно передать адрес временного хранилища. И с заданной периодичностью его извлекать и как-то обрабатывать.

😁 Ну и по классике напомню, что описанное выше не совсем очевидное поведение и имеет множество нюансов, поэтому использовать нужно с особой осторожностью и только при отсутствии других "нормальных" методов реализовать вашу потребность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥13🤔3
Forwarded from Магнит IT
🧲 ➕ 🤠 Infostart Event 2023

По сложившейся традиции от Магнита подаём доклады на ежегодную конференцию Infostart Event
И голосование уже открыто:

➖ Айдар Сафин
«OpenSearch для 1Сников. Как использовать бесплатный ElasticSearch не теряя времени, нервы и качество»

➖ Александр Пузаков
«Закон Конвея, или Почему 1С [пока] не захватила гигантские корпорации»

Интересна тема доклада?
Поддержите коллег своим голосом на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥9
Жёлтый чайник 1С (Черненко Виталий)
Photo
Показывается предупреждение с таймером в 1 секунду, далее второе предупреждение, потом форма-пустышка и вызов исключения.

После срабатываения таймера какие из открытых форм будут закрыты? Ошибки компиляции здесь нет.
Anonymous Quiz
27%
Никакие формы закрыты не будут
18%
Будет закрыто первое предупреждение
10%
Будут закрыты все предупреждения
9%
Будут закрыты предупреждения и форма
9%
Будут закрыты и предупреждения, и форма, и исключение
28%
Будет паника
🤯24😁9👍4
❗️ Острожнее с Асинх!

Серию постов про нюансы Асинх методов начинаем с асинхронных процедур.
😁 Если коротко, то не создавайте их

У асинхронных процедур есть очень неприятный нюанс. Их невозможно Ждать. ⏲
Так как процедуры не возвращают результат, то и Ждать их результата невозможно.

💬Например, у нас есть процедура, которая заполняет дерево на форме.
Заполняет она его из файла, предварительно асинхронно проверяя его существование при помощи Ждать Файл.СуществуетАсинх()
❗️ Такую процедуру нельзя вызвать и подождать.
Нельзя где-то в коде вызвать вашу процедуру "ЗаполнитьДеревоИзФайла", а сразу после что-то пытаться сделать с этим самым деревом. Потому что оно ещё не будет заполнено.

💡 Поэтому, если вы создаёте асинхронную процедуру (метод, который ничего не должен возвращать), то подумайте хорошенько... и сделайте её Функцией.
Пусть лучше ваш метод бессмысленно вернёт Неопределено или Истина. Зато тогда его можно будет подоЖдать

👍 Кстати, ещё хорошей практикой будет в конце названия метода добавить "Асинх". Тогда разработчик, который вызывает метод, точно поймёт, что он асинхронен.
Заботьтесь о тех, кто будет работать с вашим кодом после вас ❤️

_____________
@JuniorOneS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍44🔥11❤2😱1
Жёлтый чайник 1С (Черненко Виталий)
Photo
Есть строковый реквизит формы "Строка".
Какое будет содержимое реквизита после выполнения команды?
Anonymous Quiz
24%
Нули, а потом единицы
6%
Единицы, а потом нули
39%
Чередование нулей и единиц
30%
Исключение
🔥12👍8🤯3
Жёлтый чайник 1С (Черненко Виталий)
Photo
Какие сообщения будут выведены пользователю при нажатии команды?
Anonymous Quiz
49%
Да, Да, Да
11%
Да, Нет, Да
18%
Да, Нет, Нет
4%
Да, Да, Нет
18%
Нет, Нет, Нет
🤯22👍10🔥4🤨3👏2
Жёлтый чайник 1С (Черненко Виталий)
Photo
Обработка. Есть реквизиты с типом Строка и СписокЗначений.
Какие сообщения будут выведены пользователю?
Anonymous Quiz
24%
Да, Да
13%
Да, Нет
14%
Нет, Да
49%
Нет, Нет
🤯27🔥6👍5🤔2
Скорая помощь 1С 🤠

Я не люблю токсичность. А в рунете её достаточно много. То возраст кому-то не нравится, то глаза недостаточно яркие, то взгляд напрягает.
Это ничего полезного не даёт ни начинающему кодеру, ни опытному разработчику.

Поэтому приглашаю в новый чат Скорая помощь 1С. Главное правило чата - никакой токсичности. Чат нужен только для возможности задавать вопросы и помогать находить ответы.

Добро пожаловать в @HelpOneS и мира в ваш дом 🕊️
👍16❤11🕊3🤡2👏1
Жёлтый чайник 1С (Черненко Виталий)
Photo
Какое сообщение будет выведено при нажатии на команду?
Anonymous Quiz
14%
0
72%
1
15%
Исключение
🤯23👍8🔥2😁1
Жёлтый чайник 1С (Черненко Виталий)
Photo
Какие будут сообщения при нажатии на команду?
Anonymous Quiz
7%
0 0
40%
0 1
13%
1 0
25%
1 1
14%
Исключение
👍16🔥4🤔1