Загрузка данных
&НаСервере
Функция СформироватьJSONНоменклатуры()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование,
| ЕСТЬNULL(Номенклатура.Артикул, """") КАК Артикул,
| ПРЕДСТАВЛЕНИЕ(Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмерения
|ПОМЕСТИТЬ ВТ_Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа
|;
|ВЫБРАТЬ
| ВТ_Номенклатура.Ссылка КАК Ссылка,
| ВТ_Номенклатура.Наименование КАК Наименование,
| ВТ_Номенклатура.Артикул КАК Артикул,
| ВТ_Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЕСТЬNULL(ШтрихкодыНоменклатуры.Штрихкод, """") КАК Штрихкод
|ИЗ
| ВТ_Номенклатура КАК ВТ_Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
| ПО ВТ_Номенклатура.Ссылка = ШтрихкодыНоменклатуры.Номенклатура
|ИТОГИ
| МАКСИМУМ(Наименование),
| МАКСИМУМ(Артикул),
| МАКСИМУМ(ЕдиницаИзмерения)
|ПО
| Ссылка";
МассивДанных = Новый Массив;
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
Данные = Новый Структура;
Данные.Вставить("Наименование", Выборка.Наименование);
Данные.Вставить("Артикул", Выборка.Артикул);
Данные.Вставить("ЕдиницаИзмерения", Выборка.ЕдиницаИзмерения);
ЕдиницаСтрокой = НРег(СокрЛП(Выборка.ЕдиницаИзмерения));
Данные.Вставить("Весовой", ЕдиницаСтрокой = "кг");
Штрихкоды = Новый Массив;
ДетальнаяВыборка = Выборка.Выбрать();
Пока ДетальнаяВыборка.Следующий() Цикл
Если ЗначениеЗаполнено(ДетальнаяВыборка.Штрихкод) Тогда
Штрихкоды.Добавить(ДетальнаяВыборка.Штрихкод);
КонецЕсли;
КонецЦикла;
Данные.Вставить("Штрихкоды", Штрихкоды);
МассивДанных.Добавить(Данные);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб));
ЗаписатьJSON(ЗаписьJSON, МассивДанных);
Возврат ЗаписьJSON.Закрыть();
КонецФункции
&НаСервере
Функция СформироватьJSONКонтрагентов()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.Наименование КАК Наименование,
| ЕСТЬNULL(Контрагенты.ИНН, """") КАК ИНН,
| ЕСТЬNULL(Контрагенты.КПП, """") КАК КПП,
| ПРЕДСТАВЛЕНИЕ(Контрагенты.ЮрФизЛицо) КАК ЮрЛицоПредставление
|ПОМЕСТИТЬ ВТ_Контрагенты
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| НЕ Контрагенты.ПометкаУдаления
|;
|ВЫБРАТЬ
| ВТ_Контрагенты.Ссылка КАК Ссылка,
| ВТ_Контрагенты.Наименование КАК Наименование,
| ВТ_Контрагенты.ИНН КАК ИНН,
| ВТ_Контрагенты.КПП КАК КПП,
| ВТ_Контрагенты.ЮрЛицоПредставление КАК ЮрЛицоПредставление,
| ЕСТЬNULL(КонтактнаяИнформация.Вид.Наименование, """") КАК ВидКИ,
| ЕСТЬNULL(КонтактнаяИнформация.Представление, """") КАК ПредставлениеКИ
|ИЗ
| ВТ_Контрагенты КАК ВТ_Контрагенты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО ВТ_Контрагенты.Ссылка = КонтактнаяИнформация.Ссылка
|ИТОГИ
| МАКСИМУМ(Наименование),
| МАКСИМУМ(ИНН),
| МАКСИМУМ(КПП),
| МАКСИМУМ(ЮрЛицоПредставление)
|ПО
| Ссылка";
МассивДанных = Новый Массив;
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
Данные = Новый Структура;
Данные.Вставить("Наименование", Выборка.Наименование);
Данные.Вставить("ИНН", Выборка.ИНН);
Данные.Вставить("КПП", Выборка.КПП);
Если Найти(НРег(Выборка.ЮрЛицоПредставление), "юридическое") > 0 Тогда
Данные.Вставить("ЮрФизЛицо", "юрлицо");
Иначе
Данные.Вставить("ЮрФизЛицо", "физлицо");
КонецЕсли;
Контакты = Новый Массив;
ДетальнаяВыборка = Выборка.Выбрать();
Пока ДетальнаяВыборка.Следующий() Цикл
Если ЗначениеЗаполнено(ДетальнаяВыборка.ПредставлениеКИ) Тогда
Контакт = Новый Структура("Вид, Значение", ДетальнаяВыборка.ВидКИ, ДетальнаяВыборка.ПредставлениеКИ);
Контакты.Добавить(Контакт);
КонецЕсли;
КонецЦикла;
Данные.Вставить("КонтактнаяИнформация", Контакты);
МассивДанных.Добавить(Данные);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб));
ЗаписатьJSON(ЗаписьJSON, МассивДанных);
Возврат ЗаписьJSON.Закрыть();
КонецФункции