Загрузка JSON в дерево значений

Публикация № 1467434 29.06.21

Разработка - Универсальные функции

JSON парсинг дерево значений

Читаем и парсим JSON, засовываем его в дерево - что тут сложного?

JSON -> ДЕРЕВО ЗНАЧЕНИЙ

 

ВВЕДЕНИЕ

Некоторые уже стали забывать, а некоторые даже и не знали (вот я, например), что JSON - это JavaScript Object Notation, что переводится примерно как "'Запись' объекта в JavaScript". Честно говоря, слово "нотация" вроде как можно и не переводить - оно уже входит в русский язык, но в данном случае это именно "запись", т.е. представление объекта в виде некой структурированной записи - структуры данных, а в данном конкретном случае еще и характерная для JavaScript.

Сейчас JSON используется далеко за пределами JS, парсеры для JSON появились даже в 1С и представляют из себя мало отличимый от персера XML список объектов для повседневного использования.

 

ПАРСЕР JSON В 1С 

Здесь, как и в XML, есть два простых базовых объекта для чтения и записи JSON. Вот они:

Запись = Новый ЗаписьJSON;
Чтение = Новый ЧтениеJSON;

 Собственно, работа с этими объектами в обычном повседневном применении проста до безобразия:

// Читаем JSON

Чтение.УстановитьСтроку( СтрокаJSON ); // строка, которая прилетела к вам из какого-нибудь сервиса
ДанныеСтруктура = ПрочитатьJSON( Чтение);
ДанныеСоответствие = ПрочитатьJSON( Чтение, Истина );

// Пишем JSON

Запись.УстановитьСтроку();
ЗаписатьJSON( Запись, ДанныеСтруктура ); // значением может быть простой тип, структура и соответствие
СтрокаJSON = Запись.Закрыть();

JSON в 1С может быть прочитан в структуру или соответствие ("Истина" во втором параметре как раз говорит, чтобы система прочитала данные в соответствие). Также если в данных есть даты, то имена этих полей нужно указать в следующем параметре. Там есть еще некоторое количество параметров, которые могут пригодиться вам, если вдруг вы захотите записать что-то помимо простых типов, массивов, структур, соответствий и их фиксированных вариантов.

При записи JSON может быть преобразован простой тип, структура, соответствие, дата и т.д. = здесь уже не надо заморачиваться со списком полей и видом преобразование. А если вы хотите записать что-то помимо этого, то, опять же, вам помогут дополнительные параметры с указанием функции преобразования.

Надеюсь, что с чтением и записью мы разобрались. Давайте превратим этот набор данных в дерево. Т.е. мы сделаем дерево из структуры (кто хочет - может сделать дерево и из соответствия - даже код менять не нужно).

 

В ДЕРЕВО!

Ну код тут прост, как три копейки...

&НаСервере
Процедура ПоместитьВДерево( Текст )
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку( Текст );
	Данные = ПрочитатьJSON( Чтение );
	
	ЗначениеВРеквизитФормы(
		РазвернутьВДерево( РеквизитФормыВЗначение("Дерево"), Данные ),
		"Дерево" );
	
КонецПроцедуры
	
&НаСервереБезКонтекста
Функция РазвернутьВДерево( Дерево, Данные, Параметр = "" )
	Для Каждого Ст ИЗ Данные Цикл 
		Если ТипЗнч(Ст) = Тип("КлючИЗначение") Тогда 
			Строка = Дерево.Строки.Добавить();
			Строка.Параметр = Ст.Ключ;
			Если ТипЗнч(Ст.Значение) = Тип("Структура") 
				ИЛИ ТипЗнч(Ст.Значение) = Тип("Массив") Тогда 
				РазвернутьВДерево( Строка, Ст.Значение, Ст.Ключ );
			Иначе
				Строка.Значение =  Ст.Значение
			КонецЕсли;
		Иначе
			Строка = Дерево.Строки.Добавить();
			Строка.Параметр = Параметр;
			Если ТипЗнч(Ст) = Тип("Структура") 
				ИЛИ ТипЗнч(Ст) = Тип("Массив") Тогда 
				РазвернутьВДерево( Строка, Ст, Параметр );
			Иначе
				Строка.Значение =  Ст
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Возврат Дерево
КонецФункции

На выходе у нас что-то типа этого:

Исходный файл вот такой (начало):

{"dox":{"tux":{"res":[{
"part":{"xtd":"320565","godex":{"name":"TE Connectivity"},
"ibo":[{
"hado":{"name":"oxford"},"hubos":[{
[...]

В общем, пробуйте, уважаемые господа-товарищи - обработка прикреплена.

PS: в справке 1С написано, что данный функционал доступен с 8.3.6, но тестировалась обработка на 8.3.18.1289.

Скачать файлы

Наименование Файл Версия Размер
Загрузка JSON в дерево значений:

.epf 7,05Kb
5
.epf 0.1 7,05Kb 5 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. aleksey2 82 30.06.21 08:15 Сейчас в теме
начиная с платформы 8.3.6.1977
2. ITSun 28.07.21 08:23 Сейчас в теме
Тренируетесь?

Физкультура - это хорошо!
И рейтинг опять же.
3. starik-2005 2808 28.07.21 11:53 Сейчас в теме
(2)
Тренируетесь
Типа того. Реакция на одного неадеквата в действительности.
5. RustIG 1651 02.12.21 01:13 Сейчас в теме
кажется дерево содержит лишние узлы - см. картинку
Прикрепленные файлы:
7. starik-2005 2808 02.12.21 23:30 Сейчас в теме
6. RustIG 1651 02.12.21 14:13 Сейчас в теме
создание дерева через рекурсию
Процедура СоздатьДерево(Кнопка)
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ЭлементыФормы.ПолеТекстовогоДокумента1.ПолучитьТекст());
	Данные = ПрочитатьJSON(Чтение);
	
	Дерево = Новый ДеревоЗначений;
	Дерево.Колонки.Добавить("Параметр");
	Дерево.Колонки.Добавить("Значение");
	
	ТекУзел = Дерево;
		
	ДобавитьУзел(ТекУзел, Данные);
	
	ЭлементыФормы.Дерево.СоздатьКолонки();	

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

Процедура ДобавитьУзел(ТекУзел, СтруктураДерева)
		
	Для Каждого ЭлСтруктуры Из СтруктураДерева Цикл
		
		Если ТипЗнч(СтруктураДерева)=Тип("Структура") Тогда			
 
			ПодчиненныйУзел = ТекУзел.Строки.Добавить();
			ПодчиненныйУзел.Параметр = ЭлСтруктуры.Ключ;
			
			Если ТипЗнч(ЭлСтруктуры.Значение)=Тип("Структура") 
				ИЛИ ТипЗнч(ЭлСтруктуры.Значение)=Тип("Массив") Тогда
				ДобавитьУзел(ПодчиненныйУзел, ЭлСтруктуры.Значение);
			Иначе
				ПодчиненныйУзел.Значение = ЭлСтруктуры.Значение;
			КонецЕсли; 		
			
		Иначе //массив
			
			//ПодчиненныйУзел = ТекУзел.Строки.Добавить();
			//ПодчиненныйУзел.Параметр = ЭлСтруктуры;
			
			Если ТипЗнч(ЭлСтруктуры)=Тип("Структура") 
				ИЛИ ТипЗнч(ЭлСтруктуры)=Тип("Массив") Тогда
				ДобавитьУзел(ТекУзел, ЭлСтруктуры);
			Иначе
				ПодчиненныйУзел.Значение = ЭлСтруктуры;
			КонецЕсли; 		
			
		КонецЕсли;
			
	КонецЦикла;
		
КонецПроцедуры
Показать
Прикрепленные файлы:
8. miXna5 72 06.12.21 17:08 Сейчас в теме
(6) У вас добавляются только узлы 1 уровня. Если подчиненность идет дальше, будет выводиться неверно (без вложенности). У автора поста отрабатывает нормально.
9. RustIG 1651 06.12.21 18:33 Сейчас в теме
10. miXna5 72 20.12.21 14:25 Сейчас в теме
(9) Вот пример. На прикрепленных скриншотах результат выполнения по методу автора и по вашему.
По методу автора массив элементов, которые состоят в свою очередь из объектов разложится наглядно в структуры, а по вашей процедуре свойства объектов в массиве будут выводится общим списком, что не наглядно.
Дело как раз в двух закомментированных строках.
Прикрепленные файлы:
11. RustIG 1651 20.12.21 15:08 Сейчас в теме
(10) можете прислать файл json? хочу сам отладить
12. miXna5 72 20.12.21 16:16 Сейчас в теме
(11) Мне это API портала "Электронный знак" (Белорусский аналог Честного знака) возвращает. Сохранил в файл.
Прикрепленные файлы:
Пример.json
13. RustIG 1651 20.12.21 18:13 Сейчас в теме
(12) спасибо.
разобрался.
моей целью было - как можно точнее отобразить содержимое файла джейсон
вот сравните результат моего алгоритма и содержимое файла джейсон
Прикрепленные файлы:
14. RustIG 1651 20.12.21 18:24 Сейчас в теме
(12) один файл джейсон можно сгенерировать несколькими алгоритмами, при этом несколько по-разному связанных таблиц в базе данных можно отобразить одним и тем же файлом джейсон.... файл джейсон призван передать в сжатом виде информацию только в одну сторону. Каким образом расшифровывать полученный файл - это уже задача интерпретатора, и можно использовать как алгоритм Сергея Андреева, так и мой вариант. В его алгоритме надо "держать в уме" что повторяющиеся узлы "params" - это не элемент структуры, а очередной элемент списка (!)...
В моем варианте нужно "держать в уме" что повторяющиеся элементы списка не обрамлены структурно в узлы, а идут последовательно друг за другом....
Это как расшифровка xml-файла - алгоритм расшифровки всегда уникален и индивидуален.
Вообще,я думаю, можно найти золотую середину - компромисс - использовать алгоритм варианта 3 (!) - мы структурно выделяем элементы списка, но в названии узла используем префикс или суффикс - отличающий наш "1с-овский" узел - например "params1","params2", "params3", "держа в уме" что одноименные параметры - это всегда элементы списка, а номер параметра это порядковый номер...
15. RustIG 1651 20.12.21 18:45 Сейчас в теме
(12) или еще вариант - мы все привыкли что для отображения джейсон -структуры можно использовать Дерево с двумя полями (!):
 Дерево = Новый ДеревоЗначений;
	Дерево.Колонки.Добавить("Параметр");
	Дерево.Колонки.Добавить("Значение");

Я предлагаю использовать три поля - добавить еще "ТипЭлемента": значениями будут "УзелСтруктуры" или "ЭлементСписка" ("ЭлементМассива"):

 Дерево = Новый ДеревоЗначений;
	Дерево.Колонки.Добавить("Параметр");
	Дерево.Колонки.Добавить("Значение");
       Дерево.Колонки.Добавить("ТипЭлемента");

Это для моего варианта алгоритма и для варианта Сергея Андреева - будет полезно, чтобы была однозначная интерпретация.
16. RustIG 1651 20.12.21 18:49 Сейчас в теме
(12) в целом , спасибо за активное участие! я для себя понял гораздо больше нюансов джейсон-структур.
17. RustIG 1651 20.12.21 19:33 Сейчас в теме
(12) готово!
вот код:
Процедура СоздатьДерево(Кнопка)
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ЭлементыФормы.ПолеТекстовогоДокумента1.ПолучитьТекст());
	Данные = ПрочитатьJSON(Чтение);
	
	//Для Каждого Ст ИЗ Данные Цикл 
	//	Если ТипЗнч(Ст) = Тип("КлючИЗначение") Тогда 
	//		Строка = Дерево.Строки.Добавить();
	//		Строка.Параметр = Ст.Ключ;
	//		Если ТипЗнч(Ст.Значение) = Тип("Структура") 
	//			ИЛИ ТипЗнч(Ст.Значение) = Тип("Массив") Тогда 
	//			РазвернутьВДерево( Строка, Ст.Значение, Ст.Ключ );
	//		Иначе
	//			Строка.Значение =  Ст.Значение
	//		КонецЕсли;
	//	Иначе
	//		Строка = Дерево.Строки.Добавить();
	//		Строка.Параметр = Параметр;
	//		Если ТипЗнч(Ст) = Тип("Структура") 
	//			ИЛИ ТипЗнч(Ст) = Тип("Массив") Тогда 
	//			РазвернутьВДерево( Строка, Ст, Параметр );
	//		Иначе
	//			Строка.Значение =  Ст
	//		КонецЕсли;
	//	КонецЕсли;
	//КонецЦикла;	

	Дерево = Новый ДеревоЗначений;
	Дерево.Колонки.Добавить("Параметр");
	Дерево.Колонки.Добавить("Значение");
	Дерево.Колонки.Добавить("ТипЭлемента");
	
	ТекУзел = Дерево;
		
	ДобавитьУзел(ТекУзел, Данные);
	
	ЭлементыФормы.Дерево.СоздатьКолонки();	

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

Процедура ДобавитьУзел(ТекУзел, СтруктураДерева, ТипЭлемента = "")
		
	Для Каждого ЭлСтруктуры Из СтруктураДерева Цикл
		
		Если ТипЗнч(СтруктураДерева)=Тип("Структура") Тогда			
			
			ТипЭлемента = ТипЗнч(ЭлСтруктуры.Значение);
			
			ПодчиненныйУзел = ТекУзел.Строки.Добавить();
			ПодчиненныйУзел.Параметр = ЭлСтруктуры.Ключ;
			ПодчиненныйУзел.ТипЭлемента = ТипЭлемента;
			
			Если ТипЭлемента=Тип("Структура") ИЛИ ТипЭлемента=Тип("Массив") Тогда
				ДобавитьУзел(ПодчиненныйУзел, ЭлСтруктуры.Значение, ТипЭлемента);
			Иначе
				ПодчиненныйУзел.Значение = ЭлСтруктуры.Значение;
			КонецЕсли; 		
			
		Иначе //массив
			
			ТипЭлемента = ТипЗнч(ЭлСтруктуры);
			
			ПодчиненныйУзел = ТекУзел.Строки.Добавить();
			ПодчиненныйУзел.Параметр = "" + ЭлСтруктуры + СтруктураДерева.Найти(ЭлСтруктуры);
			ПодчиненныйУзел.ТипЭлемента = ТипЭлемента;    			

			Если ТипЭлемента=Тип("Структура") ИЛИ ТипЭлемента=Тип("Массив") Тогда
				ДобавитьУзел(ТекУзел, ЭлСтруктуры, ТипЭлемента);
			Иначе
				ПодчиненныйУзел.Значение = ЭлСтруктуры;
				ПодчиненныйУзел.ТипЭлемента = ТипЭлемента;
			КонецЕсли; 		
			
		КонецЕсли;
			
	КонецЦикла;
		
КонецПроцедуры

Показать


результат в картинках
Прикрепленные файлы:
Оставьте свое сообщение

См. также

Форма выбора из списка с оглавлением

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Список, организованный по разделам/рубрикам, по оглавлению. Быстро, просто, универсально.

1 стартмани

11.11.2022    3734    2    Yashazz    0    

18

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Универсальные обработки Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    9724    68    sapervodichka    84    

111

Программеры, упрощаем себе трудовые будни!

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

08.08.2022    3734    10    Baryshev    17    

17

Подсистема регулярных заданий

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Абонемент ($m)

Подсистема регулярных заданий предназначена для выполнения произвольных алгоритмов (задач) по заранее сформированным графикам с учетом производственного календаря.

1 стартмани

23.05.2022    4104    14    Sirruf    15    

14

Функции для обработки произвольной таблицы значений

Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Просто несколько функций для работы с произвольной таблицей значений: Левое соединение, Внутреннее соединение, Свертка таблицы. Платформа 8.3.20.1674.

1 стартмани

04.04.2022    3841    12    sanek_tgu    0    

13

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

JSON -> Дерево значений

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Очередной просмотрщик json-структуры

1 стартмани

21.12.2021    7286    50    RustIG    25    

33

Добавление электронной подписи в документ PDF

Универсальные функции Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Как добавить подпись прямо в файл PDF, чтобы не нужно было файлы подписи передавать отдельно.

1 стартмани

26.08.2021    13723    37    fotov    18    

41

Поиск корректной кодировки текста

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для поиска корректной кодировки текста.

1 стартмани

12.10.2020    6317    11    Jokemas    7    

16

Парсинг Excel-файла

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 1С:Розница 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Шаблон внешней обработки для парсинга Excel без использования COM-объектов, с учетом клиент-серверного взаимодействия, на толстом, тонком и веб-клиенте. С учетом требований безопасности и отображением длительных операций.

1 стартмани

15.09.2020    15698    41    LamerSoft    0    

26

Таблица значений в табличный документ (СКД)

Универсальные функции Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

12.08.2020    32996    12    markivkin    5    

12

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Нормализация адреса с помощью API Почты России

WEB-интеграция Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Почта России предоставляет доступ к сервису нормализации адресов по API. Данная обработка, используя сервис Почты России, демонстрирует возможность нормализации адреса из произвольной строки. Предназначена в большей степени для программистов, т.к. не связана ни с какой конфигурацией.

2 стартмани

11.08.2020    10335    18    Cerberdm    7    

21

Универсальное хранилище настроек

Универсальные функции Платформа 1С v8.3 Абонемент ($m)

Универсальная константа для хранения любых настроек, например интеграции с API. Легко вносить новые настройки без "ломания" выполнения кода в модулях.

1 стартмани

10.03.2020    12721    1    v.krivenko    17    

15

Дополнительные функции для 1С:Документооборот

Универсальные функции Платформа 1С v8.3 1С:Документооборот Управленческий учет Абонемент ($m)

В данной публикации я хочу поделиться расширением, которое содержит дополнительные функции (доработки) для 1С:Документооборот.

1 стартмани

24.01.2020    28233    207    pavelpribytkin96    47    

52

Подпись PDF в новой версии 8.3.16

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Проверяем новую возможность платформы 1С:Предприятие 8 по формированию подписей в PDF.

1 стартмани

23.12.2019    16337    51    kolya_tlt    15    

25

Простой способ загрузить файл Excel на тонком клиенте.

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

30.10.2019    17203    8    John_d    16    

17

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Картинка вместо кнопки без html

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вариант замены стандартных кнопок на форме для тех, кого не устраивают кнопки 1С и нет особых возможностей делать все с использованием html. Тестировал работу на платформах 8.3.10, 8.3.13, 8.3.14

1 стартмани

23.10.2019    14461    15    papa_harlo    6    

17

Выгрузка данных из дерева значений 1С в формат JSON иерархический список (Сериализация ДереваЗначений в JSON)

Универсальные функции Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Тема: Иерархические списки при обмене данными. В интернете не удалось найти подобного решения. Обнаружена реализация только обратной операции JSON в дерево значений 1С или рассматриваются линейные списки (таблицы).

1 стартмани

22.10.2019    17207    32    mwoleg    9    

13

Вывод QR-кода типовыми средствами.

Сканер штрих-кода Универсальные функции Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    63133    133    Емельянов Алексей    57    

51

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

Универсальные обработки Универсальные функции Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Для генерации используется компонента типовой конфигурации УТ11, встроенная в общий макет "КомпонентаПечатиQRКода". Ниже приведены процедуры, чтобы сделать обработку самостоятельно (только для УФ).

1 стартмани

11.10.2019    45338    232    dm1try    0    

29

Универсальное удаление движений регистров накопления по всем непроведенным документам

Универсальные функции Чистка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Попалась база КА 2.4 с движениями по регистрам, у которых регистратор был непроведен или помечен на удаление. Написал небольшую обработку по удалению таких записей из регистров.

1 стартмани

27.09.2019    25715    38    John_d    20    

11

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

1С REST API клиент. Обмен из 1С с сайтом/магазином WordPress/WooCommerce с помощью REST API

Универсальные обработки WEB-интеграция Универсальные функции Оптовая торговля Розничная торговля Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Обмен 1С с сайтом на WordPress и магазином Woocommerce. Внешняя обработка сделана как REST API клиент сайта WordPress, позволяет разработчику публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce. Обработки сделаны с использованием обычных форм, демо-формы использования в комплекте.

10 стартмани

29.07.2019    20803    18    osivv    15    

16

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    18543    34    SanchoD    33    

42

Несколько документов на основании одного

Универсальные функции Управляемые формы Абонемент ($m)

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

1 стартмани

10.06.2019    19954    18    mvxyz    10    

18

Пример универсальной функции для создания схемы компоновки данных с группировкой колонок

Универсальные функции Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

При использовании функции создания схемы компоновки данных согласно https://infostart.ru/public/575659/ было недостаточно возможности группировки колонок и вывода заголовка документа. Эти возможности и были добавлены в функцию.

1 стартмани

10.10.2018    8729    1    KLex    0    

20

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Печатные формы Универсальные функции Email рассылки Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    38902    24    stvorl    1    

20

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Универсальная функция - Сформировать результат СКД

Универсальные функции Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

Предлагаемая функция СформироватьРезультатСКД позволяет программисту комфортно применять систему компоновки данных для обработки информации текущей или внешней базы. Функцию целесообразно размещать в общем модуле или в расширении конфигурации на управляемых формах.

1 стартмани

19.05.2018    12574    10    pavley2002    1    

18

Даты пересечения двух периодов

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Для вычисления дат пересечения двух периодов многие зачастую используют довольно сложные наборы условий, не дающих нужный результат, или достигающих его излишне сложным путем.

1 стартмани

01.03.2018    17102    1    yojeeg    0    

14

Количество рабочих и выходных дней в месяце с сайта its.1c.ru

Учет рабочего времени Универсальные функции Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Простенькая функция, которая обращается к сайту ИТС и возвращает оттуда сведения о количестве рабочих дней в указанном месяце. Платформа 8.3.10, УФ.

1 стартмани

22.11.2017    16988    1    simplysimply    5    

23

Цвет индикатора в зависимости от значения

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

29.08.2017    16041    6    kc-ropa    12    

18

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Программное создание элементов графической схемы (через XSLT)

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

20.07.2017    32397    83    lazarenko    20    

61

Универсальная процедура по загрузке файла из интернета

WEB-интеграция Универсальные функции Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Передаем в процедуру всего два параметра: откуда взять и куда положить. Остальное она сделает сама

1 стартмани

17.05.2017    25727    20    json    5    

14

Правильный вопрос

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Заметили, что пользователи бездумно кликают по первой попавшейся кнопке, не удосужившись прочитать текст предупреждения или вопроса? Данная функция призвана решить данную проблему!

1 стартмани

15.05.2017    17045    0    SvoyakMartin    15    

16

Набор математических функций

Универсальные функции Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Небольшой набор математических функций для работы с массивами чисел.

1 стартмани

12.01.2017    21831    7    SvoyakMartin    23    

22

Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9

Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

В статье приводятся новые функции по работе с двоичными данными, появившимися в версии платформы 8.3.9 , на примере анализа формата и размера изображений. А также пример отправки изображения через API ВКонтакте с помощью новых объектов (без использования ОбъединитьФайлы())

1 стартмани

14.11.2016    47551    20    Anton64    25    

116

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Примеры взаимных преобразований Таблицы значения в Дерево значений или Табличный документ с использованием универсальных функций и макетов Системы компоновки данных. Примеры представлены в форме удобной для копирования в разработку.

1 стартмани

13.09.2016    54854    63    pavley2002    12    

53

Пример работы с реестром Windows

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример обработок и функций, демонстрирующих работу с реестром Windows с помощью COM-объекта WScript.Shell

1 стартмани

17.08.2016    12534    5    frkbvfnjh    3    

14

Простой способ убрать префикс и лидирующие нули из номера.

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Статья в которой описан, простой способ убрать префикс и лидирующие нули из номера документа.

1 стартмани

22.06.2016    66266    22    bad_boys    46    

13

Пара универсальных веб-функций для получения данных из 1С

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Две универсальные веб-функции, позволяющие получить данные через веб-сервис в виде таблицы значений или массив таблиц значений.

1 стартмани

19.04.2016    8589    4    Evilgrym    1    

12