По теме из базы знаний
- Автоматическая рассылка расчетных листов 1С ЗУП 3.1, ЗКГУ 3.1, KA 2, ERP 2, БП 3
- Рассылка по электронной почте и автоматическое формирование актов сверки взаиморасчетов для КА 2.5, УТ 11, ERP 2.5
- Расписание: объект и примеры применения
- Оптимизация персонализированных рассылок отчетов в БСП
- Интеграция 1С с Telegram - рассылка отчетов, пошаговое общение с чатами и произвольные скрипты
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
//Виды номенклатуры по умолчанию
ПараметрВидНоменклатуры = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "ВидНоменклатуры");
Если ПараметрВидНоменклатуры.Значение = Неопределено Тогда
ВидыНоменкатуры = Новый СписокЗначений;
ВидыНоменкатуры.Добавить(Справочники.ВидыНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор("e92cb736-abaf-11ea-b983-5afc5c07d194"))); //ЗИП для СТО
КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "ВидНоменклатуры", ВидыНоменкатуры);
ИначеЕсли ТипЗнч(ПараметрВидНоменклатуры.Значение) = Тип("СписокЗначений") И НЕ ПараметрВидНоменклатуры.Значение.Количество() Тогда
ВидыНоменкатуры = Новый СписокЗначений;
ВидыНоменкатуры.Добавить(Справочники.ВидыНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор("e92cb736-abaf-11ea-b983-5afc5c07d194"))); //ЗИП для СТО
КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "ВидНоменклатуры", ВидыНоменкатуры);
КонецЕсли;
//Номенклатура по умолчанию
ПараметрНоменклатура = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "Номенклатура");
Если ПараметрНоменклатура.Значение = Неопределено Тогда
Номенклатура = Новый СписокЗначений;
Номенклатура.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("eb686655-1867-11e7-a9a2-704d7b28dcd0"))); //Группа "Запчасти"
КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "Номенклатура", Номенклатура);
ИначеЕсли ТипЗнч(ПараметрНоменклатура.Значение) = Тип("СписокЗначений") И НЕ ПараметрНоменклатура.Значение.Количество() Тогда
Номенклатура = Новый СписокЗначений;
Номенклатура.Добавить(Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("eb686655-1867-11e7-a9a2-704d7b28dcd0"))); //Группа "Запчасти"
КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "Номенклатура", Номенклатура);
КонецЕсли;
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
//++Архипцев 16.09.2022 Задача № 30609
// Добавим внешние данные
ТЗ_РекомендацииНаВводВАссортимент = Новый ТаблицаЗначений;
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Регистратор");
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("СуммаВыручки", Новый ОписаниеТипов("Число"));
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("СуммаВыручкиБезНДС", Новый ОписаниеТипов("Число"));
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗ_РекомендацииНаВводВАссортимент.Колонки.Добавить("Кратность", Новый ОписаниеТипов("Число"));
Период = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("Период").Значение;
Номенклатура = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("Номенклатура").Значение;
ВидНоменклатуры = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("ВидНоменклатуры").Значение;
Кратность = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("Кратность").Значение;
ПолучитьДанные(ТЗ_РекомендацииНаВводВАссортимент, Период, ВидНоменклатуры, Номенклатура, Кратность);
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗ_РекомендацииНаВводВАссортимент",ТЗ_РекомендацииНаВводВАссортимент);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Процедура ПолучитьДанные(ТЗ_РекомендацииНаВводВАссортимент, Период, ВидНоменклатуры, Номенклатура, Кратность)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК ЭлементНоменклатуры
|ПОМЕСТИТЬ ВТ_Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления
| И Номенклатура.Ссылка В ИЕРАРХИИ(&Номенклатура)
| И НЕ Номенклатура.ЭтоГруппа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ВыручкаИСебестоимостьПродажОбороты.Склад КАК Склад,
| ВыручкаИСебестоимостьПродажОбороты.Регистратор КАК Регистратор,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК СуммаВыручки,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот) КАК Количество,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиБезНДСОборот) КАК СуммаВыручкиБезНДС
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
| &ДатаНачала,
| &ДатаОкончания,
| Регистратор,
| АналитикаУчетаНоменклатуры.Номенклатура.ВидНоменклатуры В (&ВидНоменклатуры)
| И АналитикаУчетаНоменклатуры.Номенклатура В
| (ВЫБРАТЬ
| ВТ_Номенклатура.ЭлементНоменклатуры КАК ЭлементНоменклатуры
| ИЗ
| ВТ_Номенклатура КАК ВТ_Номенклатура)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
| ВыручкаИСебестоимостьПродажОбороты.Склад,
| ВыручкаИСебестоимостьПродажОбороты.Регистратор
|ИТОГИ ПО
| Склад,
| Номенклатура";
Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("ДатаНачала", Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", Период.ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
//Если РезультатЗапроса.Пустой() Тогда
// Прервать;
//КонецЕсли;
ВыборкаСклад = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСклад.Следующий() Цикл
ВыборкаНоменклатура = ВыборкаСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
ВыборкаДокументов = ВыборкаНоменклатура.Выбрать();
КоличествоДокументов = ВыборкаДокументов.Количество();
Если КоличествоДокументов >= Кратность Тогда
Пока ВыборкаДокументов.Следующий() Цикл
НоваяСтрока = ТЗ_РекомендацииНаВводВАссортимент.Добавить();
НоваяСтрока.Склад = ВыборкаСклад.Склад;
НоваяСтрока.Номенклатура = ВыборкаНоменклатура.Номенклатура;
НоваяСтрока.Регистратор = ВыборкаДокументов.Регистратор;
НоваяСтрока.Количество = ВыборкаДокументов.Количество;
НоваяСтрока.СуммаВыручки = ВыборкаДокументов.СуммаВыручки;
НоваяСтрока.СуммаВыручкиБезНДС = ВыборкаДокументов.СуммаВыручкиБезНДС;
НоваяСтрока.Кратность = КоличествоДокументов;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот