Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 сен 2021, 20:49

Как отключить объединение одинаковых позиций в обработке табличной части? (1С 8.2, УТ 10.3.35.2)

Автор Алексей Помазков, 10 фев 2017, 07:42

0 Пользователей и 1 гость просматривают эту тему.

Алексей Помазков

Всем привет! Возникла такая проблема, обьясню все по порядку.
Создаем новый отчет о розничных продажах, нажимаем "Изменить" -> "Добавить из документа" -> "Отчеты о розничных продажах", выбираем нужный отчет и нажимаем "Выполнить".. Обработка автоматически складывает одинаковые позиции в одну, хотя нам нужно чтобы они были отдельно.
В конфигураторе нашел вот это. Что нужно закомментировать?

Цитировать
// Ищем выбранную позицию в таблице подобранной номенклатуры.
      //  Если найдем - увеличим количество; не найдем - добавим новую строку.
      СтруктураОтбора = Новый Структура();
      СтруктураОтбора.Вставить("Номенклатура", Номенклатура);

      Если Характеристика <> Неопределено
          И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ХарактеристикаНоменклатуры", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", Характеристика);
      КонецЕсли;

      Если Серия <> Неопределено
          И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("СерияНоменклатуры", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("СерияНоменклатуры", Серия);
      КонецЕсли;

      Если ЕдиницаИзмерения <> Неопределено
          И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ЕдиницаИзмерения", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("ЕдиницаИзмерения", ЕдиницаИзмерения);
      КонецЕсли;

      Если ЕдиницаИзмеренияМест <> Неопределено
          И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ЕдиницаИзмеренияМест", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("ЕдиницаИзмеренияМест", СтрокаТаблицы.ЕдиницаИзмеренияМест);
      КонецЕсли;

      Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Цена", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("Цена", Окр(ЦенаВВалютеДокумента, 2));
      КонецЕсли;

      Если ПроцентСкидкиНаценки <> Неопределено
         И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентСкидкиНаценки", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("ПроцентСкидкиНаценки", ПроцентСкидкиНаценки);
      КонецЕсли;

      Если ОграничениеСкидкиНаценки <> Неопределено
         И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ОграничениеСкидкиНаценки", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("ОграничениеСкидкиНаценки", ОграничениеСкидкиНаценки);
      КонецЕсли;

      Если мЕстьСклад
         И Склад <> Неопределено
         И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Склад", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("Склад", Склад);
      КонецЕсли;

      Если Качество <> Неопределено
         И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Качество", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
         СтруктураОтбора.Вставить("Качество", Качество);
      КонецЕсли;

      СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТабличнаяЧасть, СтруктураОтбора);

      Если СтрокаТабличнойЧасти <> Неопределено Тогда

         Если СтрокаТабличнойЧасти.Пометка Тогда
            // Нашли, увеличиваем количество в первой найденной строке.
            СтрокаТабличнойЧасти.Количество = СтрокаТабличнойЧасти.Количество + Количество;

            // Рассчитать реквизиты табличной части.
            ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);
            Если ЭлементыФормы.Товары.Колонки.СуммаНДС.Видимость Тогда
               ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);
            КонецЕсли;
            Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("КоличествоМест", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
               ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);
            КонецЕсли;
         КонецЕсли;

      Иначе

         // Не нашли - добавляем новую строку.
         СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить();
         СтрокаТабличнойЧасти.Пометка              = Истина;
         СтрокаТабличнойЧасти.Номенклатура         = Номенклатура;
         СтрокаТабличнойЧасти.Количество           = Количество;
         СтрокаТабличнойЧасти.ЕдиницаИзмерения     = ЕдиницаИзмерения;
         СтрокаТабличнойЧасти.ЕдиницаИзмеренияМест = ЕдиницаИзмеренияМест;
         СтрокаТабличнойЧасти.Коэффициент          = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Коэффициент;

         СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Характеристика;
         СтрокаТабличнойЧасти.СерияНоменклатуры          = Серия;

         СтрокаТабличнойЧасти.Качество = Качество;
         СтрокаТабличнойЧасти.Цена     = ЦенаВВалютеДокумента;

         Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентСкидкиНаценки", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
            СтрокаТабличнойЧасти.ПроцентСкидкиНаценки= СтрокаТаблицы.ПроцентСкидкиНаценки;
         КонецЕсли;

         Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ОграничениеСкидкиНаценки", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
            СтрокаТабличнойЧасти.ОграничениеСкидкиНаценки = ОграничениеСкидкиНаценки;
         КонецЕсли;

         Если мЕстьСклад
            И ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Склад", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
            СтрокаТабличнойЧасти.Склад = Склад;
         КонецЕсли;

         ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);

         // Рассчитываем реквизиты табличной части.
         ОбработкаТабличныхЧастей.ЗаполнитьПроцентРозничнойНаценкиТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);

         Если ОбщегоНазначения.ЕстьРеквизитДокумента("ПроцентРозничнойНаценки", мМетаданныеДокумента) Тогда
            ОбработкаТабличныхЧастей.РассчитатьРозничнуюЦенуТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект, мВалютаРегламентированногоУчета);
         КонецЕсли;

         ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);

         Если ЭлементыФормы.Товары.Колонки.СуммаНДС.Видимость Тогда
            ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);
         КонецЕсли;

         Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("КоличествоМест", мМетаданныеДокумента, мИмяТабличнойЧастиДокумента) Тогда
            ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект);
         КонецЕсли;

      КонецЕсли; // СтрокаТабличнойЧасти <> Неопределено
   КонецЦикла;


LexaK

:D
попробуйте сделать так

    ...
    //СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТабличнаяЧасть, СтруктураОтбора);
    СтрокаТабличнойЧасти = Неопределено; //если строка не найдена, то она добавляется, вроде то что надо.
    ...


ответ Понравился? (в смысле пригодился?)

Алексей Помазков

Цитата: LexaK от 10 фев 2017, 09:32
:D
попробуйте сделать так

    ...
    //СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТабличнаяЧасть, СтруктураОтбора);
    СтрокаТабличнойЧасти = Неопределено; //если строка не найдена, то она добавляется, вроде то что надо.
    ...



Спасибо, помогло!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск