|
Удалить строку в которой заказать равно 0
| ☑ |
0
Privetanya
16.06.20
✎
12:03
|
Нужно удалить строки в которых заказать равно 0. Не знаю как сделать,подскажите пожалуйста..
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
//Если _КолЗаказать>0 тогда
//
// ВхТаблДок.Присоединить(Область);
//КонецЕсли;
КонецЕсли;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
1
Ёпрст
16.06.20
✎
12:05
|
(0) поставить условие в текст запроса и "оно само" удалится
|
|
2
Privetanya
16.06.20
✎
12:07
|
(1) _КолЗаказать рассчитываю в этом месте
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
|
|
3
Ёпрст
16.06.20
✎
12:09
|
(2) очень интересно..
Ну и напиши
Если _КолЗаказать <>0 Тогда
ТабДок.Вывести(НужнаяОбласть);
КонецЕсли;
|
|
4
Ненавижу 1С
гуру
16.06.20
✎
12:10
|
От идентификаторов переменных рябит в глазах
|
|
5
DrZombi
гуру
16.06.20
✎
12:11
|
Вау, вы еще не удалили эту ветку :)
|
|
6
Злопчинский
16.06.20
✎
12:12
|
блин.. восьмерка это трэш с восьмерочниками... ;-)
|
|
7
Злопчинский
16.06.20
✎
12:13
|
|
|
8
DrZombi
гуру
16.06.20
✎
12:15
|
(0) Попробуй рассчитать "_КолЗаказать ", до вывода его на печатную форму.
Не скупись, двойной цикл, но столь большая потеря... От того, что ты пытаешься удалять ячейки :)
|
|
9
DrZombi
гуру
16.06.20
✎
12:16
|
+ Помнится, давненько встретился с одним алгоритмом вывода печатных форм, он чем-то напоминает на СКД от 8-ки... Отчетики куда приятней получались... универсальными :)
|
|
10
Ёпрст
16.06.20
✎
12:17
|
Ну или так, если переделывать не охота:
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
Если _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
ВхТаблДок.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
|
|
11
Ёпрст
16.06.20
✎
12:18
|
+10
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
|
|
12
Privetanya
16.06.20
✎
12:21
|
(3) вот так не получалось,пробовала. Все равно выводит всю номенклатуру
|
|
13
Privetanya
16.06.20
✎
12:22
|
(11) Ошибка при вызове метода контекста (Область)
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
по причине:
Область не найдена: 5
|
|
14
Ёпрст
16.06.20
✎
12:24
|
(13) ну блин,
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
|
|
15
Privetanya
16.06.20
✎
12:27
|
(14) удалить,то удалилось,но все группировки съехали
|
|
16
Privetanya
16.06.20
✎
12:33
|
(14) т.е. Например
Было
-Материал 0
-Пленка 0
-Лайм 122
-Дуб 10
Стало
-Лайм 122
-Дуб 10
И соответственно другие друг на друга налезли
|
|
17
Ёпрст
16.06.20
✎
12:38
|
(15) че закзывала, то и получила
|
|
18
Privetanya
16.06.20
✎
12:40
|
(17) Ок,А можете и это помочь исправить? Пожалуйста..
|
|
19
Ёпрст
16.06.20
✎
12:42
|
(18) для начала, нужно определится, что "удалять":
только группировки самого нижнего уровня или, если вышестоящая, то не выводить все нижестоящие
|
|
20
Ёпрст
16.06.20
✎
12:43
|
Для начала, вот так:
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
Продолжить;
|
|
21
Privetanya
16.06.20
✎
12:46
|
(19) Нужно удалять группировки нижнего уровня,но если вышестоящая группировка не содержит элементов,то ее тоже удаляем.
|
|
22
Privetanya
16.06.20
✎
12:50
|
(20) Выводит все основные группы
|
|
23
Privetanya
16.06.20
✎
12:57
|
(8) И так данные очень долго грузятся
|
|
24
Ёпрст
16.06.20
✎
13:05
|
Да блин..
Если _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
Иначе
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
КонецЕсли;
КонецЕсли;
КонецЕсли;
|
|
25
Privetanya
16.06.20
✎
13:12
|
(24) Не пойму что то не так. Выводятся основные группы только. Вот так ведь? Или что то не так?
ВхТаблДок.Присоединить(Область);
// Если _КолЗаказать=0 тогда
// УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
//Продолжить;
// ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
// КонецЕсли;
//
// КонецЕсли;
// вывод след. группировки
//Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
//
// _ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
// ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
//
//Иначе
//
// Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
// Продолжить;
// КонецЕсли;
//
// Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
// _ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
// ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
// КонецЕсли;
//
//КонецЕсли;
Если _КолЗаказать=0 тогда
// УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
Иначе
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения);// имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
|
|
26
Ёпрст
16.06.20
✎
13:21
|
(25)
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
_КолЗаказать = 1;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
Если _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
КонецЕсли;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии И _КолЗаказать<>0 Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() и _КолЗаказать<>0 Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
27
Privetanya
16.06.20
✎
13:24
|
(26) в этой строке ошибка - УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,,);
Я закомментила и выходят только первые основные группы
|
|
28
Ёпрст
16.06.20
✎
13:31
|
(26) ну поправь там
Если _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
|
|
29
Privetanya
16.06.20
✎
13:32
|
(28) так выводится только шапка макета...
|
|
30
Ёпрст
16.06.20
✎
13:35
|
(29) та ну ? Вставь целиком, огласи результат
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
_КолЗаказать = 1;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
Если _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии И _КолЗаказать<>0 Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() и _КолЗаказать<>0 Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
31
Privetanya
16.06.20
✎
13:39
|
(30) Вставила,вышла только шапочка макета и разделители. А если вместо _КолЗаказать<>0 поставить _КолЗаказать=0,то выходит все так как в (16)
|
|
32
Ёпрст
16.06.20
✎
13:42
|
(31) И ?Если у тебя вышестоящая группировка = 0, то зачем выводить нежестоящие ?
|
|
33
Ёпрст
16.06.20
✎
13:42
|
Ты определись тогда, какие "строки" и на каком уровне нужно удалять
|
|
34
Privetanya
16.06.20
✎
13:43
|
(33) Это просто был тест,ради интереса и все..
|
|
35
Ёпрст
16.06.20
✎
13:44
|
(34) аа.. ну тогда занимайся
|
|
36
Privetanya
16.06.20
✎
13:45
|
(35) вообще ничего не получается сделать, то что вы скинули почему то не работает..
|
|
37
Ёпрст
16.06.20
✎
13:46
|
(36) Всё работает
|
|
38
Privetanya
16.06.20
✎
13:46
|
(37) нет,я же вставила прям то что вы скинули, выводится шапочка
|
|
39
Ёпрст
16.06.20
✎
13:47
|
Еще раз, если у тебя так
Валенки 0
Резина -20
Кожа 20
КожЗам 0
То мы группировку по "Валенки" не выводим
|
|
40
Ёпрст
16.06.20
✎
13:47
|
Если тебе нужно отсечь только группировку самого нижнего уровня, то там надо другое условие
|
|
41
Privetanya
16.06.20
✎
13:48
|
(39) выводим там же есть данные
|
|
42
Ёпрст
16.06.20
✎
13:48
|
(41) с какого хрена ? У тебя по ней ИТОГ =0
|
|
43
Ёпрст
16.06.20
✎
13:52
|
Давай так:
Валенки 0
Резина -20
Красная 0
Белая 100
Черная -120
Кожа 20
Красная 20
Белая 0
Черная 0
КожЗам 0
Красная 0
Белая -10
Желтая 10
Чего надо оставить в итоге ?
|
|
44
Privetanya
16.06.20
✎
13:52
|
(39) Не Вы не правильно поняли... Это не итоговое значение.
Это просто группировка.
КолЗаказано
Номенклатура 0 (тут даже не 0 а просто пустота)
ВарИсполнения 10
Валенки -
Резина 30
Кожа 20
КожЗам 0
|
|
45
Privetanya
16.06.20
✎
13:54
|
(43) Валенки 0
Резина -20
Красная 0 (убрать)
Белая 100
Черная -120
Кожа 20
Красная 20
Белая 0(убрать)
Черная 0(убрать)
КожЗам 0
Красная 0(убрать)
Белая -10
Желтая 10
А если так то убрать все.
Валенки 0
Резина 0
Красная 0
Белая 0
Черная 0
|
|
46
Ёпрст
16.06.20
✎
14:01
|
(45)
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
_КолЗаказать = 1;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
ИначеЕсли _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
47
Privetanya
16.06.20
✎
14:10
|
(46) Так уже лучше,только не пропали вот такие моменты
Валенки 0
Без вариантов исполнения
|
|
48
Ёпрст
16.06.20
✎
14:14
|
(47) Я хз, что такое "варианты" исполнения.
|
|
49
Ёпрст
16.06.20
✎
14:15
|
В коде просто удаляется последняя группировка, если в ней колзакз=0
|
|
50
Ёпрст
16.06.20
✎
14:15
|
добавьте нужное условие туда и всё.. на ваш "вариант"
|
|
51
Privetanya
16.06.20
✎
14:19
|
(50) у меня получается надо удалить группировку КолЗаказ=0 у которой нет нижней группировки =0
|
|
52
Ёпрст
16.06.20
✎
14:20
|
(51) в данный момент так и есть
|
|
53
Privetanya
16.06.20
✎
14:22
|
(52) сейчас удаляется только нижняя группировка,а верхняя остается
|
|
54
Ёпрст
16.06.20
✎
14:27
|
(53) еще раз, если ты не подсчитываешь ИТОГИ, то и удалять нечего
|
|
55
Ёпрст
16.06.20
✎
14:27
|
Если подсчитываешь, то выводить нечего
|
|
56
Ёпрст
16.06.20
✎
14:29
|
И по уму, нужно не удалять из выведенной таблицы, а не выводить по условию. И своё колзаказать вычислять в запросе
|
|
57
Ёпрст
16.06.20
✎
14:30
|
и там же, фильтровать
|
|
58
Privetanya
16.06.20
✎
14:36
|
(54) нужно удалить, если мы удалили у него строки с вариантами исполнения,то и саму номенклатуру надо удалить
И если у него нет Вариантов исполнения и у него пустота(0),то удалить
|
|
59
Privetanya
16.06.20
✎
14:37
|
(56) (57) обработка была,готовой,просто надо было вывести печатную форму,а для этого не хочется все переделывать
|
|
60
Ёпрст
16.06.20
✎
14:39
|
(59) ну так, хотя бы
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
_КолЗаказать = 1;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
НадоУдалить = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
СтараяВысота = ВхТаблДок.ВысотаТаблицы;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(НадоУдалить , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(НадоУдалить , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
ИначеЕсли _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
61
Privetanya
16.06.20
✎
14:49
|
(60) тоже самое
|
|
62
Ёпрст
16.06.20
✎
14:54
|
(61)
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
_КолЗаказать = 1;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
НадоУдалить = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
СтараяВысота = ВхТаблДок.ВысотаТаблицы;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(НадоУдалить , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Если _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(НадоУдалить , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
ИначеЕсли _КолЗаказать=0 тогда
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
63
Privetanya
16.06.20
✎
14:58
|
(62) Спасибо,получилось. Только Выводятся лишние горизонтальные разделители,ну то есть как бы пустые узкие строки
|
|
64
Ёпрст
16.06.20
✎
15:08
|
скриншот покажи
|
|
65
Privetanya
16.06.20
✎
15:11
|
(64)
|
|
66
Ёпрст
16.06.20
✎
15:23
|
(65) странно, в этой таблице поставь отображать заголовке в меню.. там есть нумера строк ?
|
|
67
Ёпрст
16.06.20
✎
15:23
|
и.. у тебя в макете, область состоит из одной строки ?
|
|
68
Privetanya
16.06.20
✎
15:28
|
(66) нажимаю,ничего не выходит. (67)макет
|
|
69
Ёпрст
16.06.20
✎
15:32
|
Так пробуй
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
_КолЗаказать = 1;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
УдаляемаяОбласть = ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
// НадоУдалить = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
СтараяВысота = ВхТаблДок.ВысотаТаблицы;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Если _КолЗаказать=0 тогда
// УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
ИначеЕсли _КолЗаказать=0 тогда
//УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы,,ВхТаблДок.ВысотаТаблицы,);
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
70
Ёпрст
16.06.20
✎
15:34
|
У тя Гр0 из 2-х строк, поэтому через ВысотаТаблицы не корректно удаляет, вот верхний кусок и остаётся
|
|
71
Ёпрст
16.06.20
✎
15:34
|
там надо поправку на высоту выведенной области делать, если как в (69) не заработает
|
|
72
Privetanya
16.06.20
✎
15:37
|
(71) Как в (69) не работает.
|
|
73
lEvGl
гуру
16.06.20
✎
15:41
|
хренеть можно, даже читать эту писанину лень, не то что ответить, где косяк. универсальность на высоте ежже
|
|
74
Ёпрст
16.06.20
✎
15:42
|
(72)
Процедура ВывестиГруппировкуПечать(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
_ДнейВМесяце = 30;
_ИмяСекции = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
_ИмяГр = ВхТаблГр[ВхНомГр].ИмяИзмерения;
_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
_ТипИзмерения = ВхТаблГр[ВхНомГр].ТипИзмерения;
_КолЗаказать = 1;
Пока ВхЗапрВыб.Следующий() Цикл
// "_ИмяСекции|Начало"
Если ВхТипГр = "Итоги" Тогда
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
ВхТаблДок.Вывести(Область, ВхУровень);
Иначе
_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
Если глПустоеЗначение(_ЗначениеГр) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
Если _ЗначениеГр.ЭтоГруппа Тогда
Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
Иначе
Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " + _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
_ВыводитьИтогиПоГруппировке = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
КонецЕсли;
Область.Параметры.Расшифровка = _ЗначениеГр;
ВхТаблДок.Вывести(Область, ВхУровень);
КонецЕсли;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
ВхТаблДок.Присоединить(Область);
// расшифровки работают только для группировок "Номенклатура" и "ВариантИсполнения"
Если _ИмяГр = "Номенклатура" Тогда
_Номенклатура = _ЗначениеГр;
_ВариантИсполнения = Справочники.ВариантыИсполнения.ПустаяСсылка();
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
ИначеЕсли _ИмяГр = "ВариантИсполнения" Тогда
_Номенклатура = _ЗначениеГр.Владелец;
_ВариантИсполнения = _ЗначениеГр;
_ОснПоставщик = ?(ГруппироватьПоОснПоставщику, ВхЗапрВыб.ОснПоставщик, Неопределено);
КонецЕсли;
_ЕдИзм = ?(_Номенклатура = Неопределено, Неопределено, _Номенклатура[ИспользуемыеЕдиницыИзмерения]);
Если _ИмяГр = "Номенклатура"
И НЕ _Номенклатура.ЭтоГруппа
И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
_ВариантИсполненияНоменклатуры = _Номенклатура.ОсновнойВариантИсполнения;
КонецЕсли;
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
//Область.Параметры.СрокПоставки = ВхЗапрВыб.СрокПоставкиДней;
_ТочкаЗаказа = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + ВхЗапрВыб.КолМинОстаток;
//Область.Параметры.ТочкаЗаказа = _ТочкаЗаказа;
_МинЗаказ = ВхЗапрВыб.КолРасходЗаДень * ВхЗапрВыб.СрокПоставкиДней + (_ТочкаЗаказа - ВхЗапрВыб.КолОстаток);
Если _МинЗаказ < 0 Тогда
_МинЗаказ = 0;
КонецЕсли;
//Область.Параметры.МинЗаказ = _МинЗаказ;
КонецЕсли;
Если НЕ ТолькоУтвержденныеЗаказыОбеспечение Тогда
// "_ИмяСекции|ИтогоЗаказ"
_КолЗаказать = 0;
Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ИтогоЗаказ");
Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
ИЛИ _ИмяГр = "ВариантИсполнения" Тогда
_КолДефицит = -ВхЗапрВыб.КолПрофицит;
Если // Заготовки раскроя в производство не заказываем, т.к. не поддерживается ввод заказов на резку
(Есть.Раскрой()
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _Номенклатура.НоменклатурнаяГруппа.ЯвляетсяВыходомРаскроя
)
//автозапускаемые позиции запускаются обработкой запуск заказа в производство
ИЛИ (_ИмяГр = "Номенклатура" //номенклатура с единственным вариантом (автозапускаемым в производство)
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
И _ВариантИсполненияНоменклатуры.АвтоЗапускВПроизводство
)
ИЛИ (_ИмяГр = "ВариантИсполнения" //автозапускаемый в производство вариант исполнения
И _Номенклатура.ОснСпособВоспроизводства = Перечисления.СпособыВоспроизводства.Производство
И _ВариантИсполнения.АвтоЗапускВПроизводство
) Тогда
_КолЗаказать = 0;
Иначе
Если _МинЗаказ > 0 ИЛИ _КолДефицит > 0 Тогда
_КолЗаказать = Макс(_МинЗаказ, _КолДефицит,ВхЗапрВыб.НормаПополнения);
КонецЕсли;
Если _КолЗаказать > 0 И ВхЗапрВыб.МинПартияЗакупки > 0 Тогда
_КолЗаказать = Окр((_КолЗаказать/ВхЗапрВыб.МинПартияЗакупки)+0.5)*ВхЗапрВыб.МинПартияЗакупки;
КонецЕсли;
КонецЕсли;
// точность количества материалов в производстве равна 6 знакам, а заказать можно только с точностью в 3 знака
Если Окр(_КолЗаказать, 3) < _КолЗаказать Тогда
_КолЗаказать = Окр(_КолЗаказать, 3) + 0.001;
КонецЕсли;
Область.Параметры.НормаПополнения = ВхЗапрВыб.НормаПополнения;
Область.Параметры.КолЗаказать = _КолЗаказать;
КонецЕсли;
ВхТаблДок.Присоединить(Область);
КонецЕсли;
УдаляемаяОбласть = ВхТаблДок.Область(ВхТаблДок.ВысотаТаблицы-Область.ВысотаТаблицы+1,,ВхТаблДок.ВысотаТаблицы,);
СтараяВысота = ВхТаблДок.ВысотаТаблицы;
// вывод след. группировки
Если ВхЗапрВыб.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр].ИмяИзмерения);
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхТаблГр, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Иначе
Если _ИмяГр = "Номенклатура" И НЕ _Номенклатура.РазрешитьНесколькоВариантовИсполнения Тогда
Если _КолЗаказать=0 тогда
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
Продолжить;
КонецЕсли;
Если ВхНомГр + 1 < ВхТаблГр.Количество() Тогда
_ЗапрВыб = ВхЗапрВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, ВхТаблГр[ВхНомГр + 1].ИмяИзмерения); // имя след. группировки
ВывестиГруппировкуПечать(ВхМакет, _ЗапрВыб, "Строки", ВхНомГр + 1, ВхТаблГр, ВхУровень + 1, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику);
Если ВхТаблДок.ВысотаТаблицы = СтараяВысота Тогда
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
ИначеЕсли _КолЗаказать=0 тогда
ВхТаблДок.УдалитьОбласть(УдаляемаяОбласть , ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
75
Privetanya
16.06.20
✎
15:45
|
(74) Все,спасибо огромное!!!!)))
|
|
76
lEvGl
гуру
16.06.20
✎
15:47
|
(74) давай, до свиданья ;)
|
|