Простая работа с JSON в 1C
Два метода, которые любые данные преобразуют в json и прочитают из json (проверено на передаче и чтении типа Структура):
Два метода, которые любые данные преобразуют в json и прочитают из json (проверено на передаче и чтении типа Структура):
Функция ПолучитьТекстJSON(Данные) Экспорт
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(, Символы.Таб));
ЗаписатьJSON(ЗаписьJSON, Данные);
Возврат ЗаписьJSON.Закрыть();
КонецФункции
Функция ПрочитатьJSONвСтруктуру(Текст) Экспорт
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Текст);
Результат = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Возврат Результат;
КонецФункции
@yellow_pad | #интеграция #листингПрограммная доработка форм типовых конфигураций
В типовых конфигурациях в формах ПриСозданииНаСервере вызывается метод общего модуля СобытияФорм (см. скрин 1). Если расширить только этот модуль, то можно в одном модуле собрать все программные модификации форм (см. скрин 2).
Получается удобная универсальная оснастка, которую можно тиражировать во все свои проекты.
@yellow_pad | #совет #оснастка #Форма #листинг
В типовых конфигурациях в формах ПриСозданииНаСервере вызывается метод общего модуля СобытияФорм (см. скрин 1). Если расширить только этот модуль, то можно в одном модуле собрать все программные модификации форм (см. скрин 2).
Получается удобная универсальная оснастка, которую можно тиражировать во все свои проекты.
@yellow_pad | #совет #оснастка #Форма #листинг
Управление кэшем из кода
При использовании общего модуля с повторным использованием приведенная структура вызовов (см. скриншот) позволяет в момент вызова определять, хотим мы использовать кэширование получаемого параметра или нет:
При использовании общего модуля с повторным использованием приведенная структура вызовов (см. скриншот) позволяет в момент вызова определять, хотим мы использовать кэширование получаемого параметра или нет:
ПолныеПрава.ПолучитьПроизвольныйПараметр("ОсновнойСкладОтгрузки", Истина);
@yellow_pad | #Программист1С #кэш #ОбщийМодуль #листингПолучение самого верхнего родителя для элемента справочника
Посчитал, что перебирать всех родителей запросом или рекурсией, а тем более выполнять запрос по иерархии, совсем не оптимально.
Идея - выбираем все верхние элементы справочника и для каждого проверяем
@yellow_pad | #алгоритмы #данные #Справочник #листинг
Посчитал, что перебирать всех родителей запросом или рекурсией, а тем более выполнять запрос по иерархии, совсем не оптимально.
Идея - выбираем все верхние элементы справочника и для каждого проверяем
НашаСсылка.ПринадлежитЭлементу(Выборка.Ссылка)
Пример функции: paste1C@yellow_pad | #алгоритмы #данные #Справочник #листинг
Процедура проведения и записи документа
Пример процедуры, реализующей проверку заполнения документа и попытку его проведения. При обнаружении ошибок - попытка записать документ.
В реальном проекте, с расширенным логированием результата, использована в модуле обмена с внешней системой для фиксации в базе всех загружаемых документов (новых и измененных).
Код: paste1C, fastcode
@yellow_pad | #1С #Код #Листинг #Проведение #Документ
Пример процедуры, реализующей проверку заполнения документа и попытку его проведения. При обнаружении ошибок - попытка записать документ.
В реальном проекте, с расширенным логированием результата, использована в модуле обмена с внешней системой для фиксации в базе всех загружаемых документов (новых и измененных).
Код: paste1C, fastcode
@yellow_pad | #1С #Код #Листинг #Проведение #Документ
paste1c.ru
Paste1C - сервис для обмена кодом для 1С:Предприятия
Код:
Получение самого верхнего родителя для элемента справочника (вариант)
Продолжение октябрьского поста. Дмитрий Плотников предложил в комментариях заслуживающий внимания вариант получения верхнего родителя по ссылке на элемент справочника:
Продолжение октябрьского поста. Дмитрий Плотников предложил в комментариях заслуживающий внимания вариант получения верхнего родителя по ссылке на элемент справочника:
Строка = Ссылка.ПолныйКод();@yellow_pad | #1С #Справочник #Иерархия
Массив = СтрРазделить(Строка, "/");
КодВерхнегоРодителя = Массив[0];
Родитель = Справочники.Номенклатура.НайтиПоКоду(КодВерхнегоРодителя);
Telegram
Жёлтая тетрадь 📒 Блог программиста 1С 👨💻
Получение самого верхнего родителя для элемента справочника
Посчитал, что перебирать всех родителей запросом или рекурсией, а тем более выполнять запрос по иерархии, совсем не оптимально.
Идея - выбираем все верхние элементы справочника и для каждого проверяем…
Посчитал, что перебирать всех родителей запросом или рекурсией, а тем более выполнять запрос по иерархии, совсем не оптимально.
Идея - выбираем все верхние элементы справочника и для каждого проверяем…