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