Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Установка цен номенклатуры (табличная часть)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
Опишу все по порядку:
Задача - присвоить каждой позиции номенклатуры ЦеновуюГруппу, знаю есть похожее, но не удовлетворяет, вообщем создал справочник ЦеновыеГруппыНоменклатуры, в которой храниться наценка для Розницы и возможные скидки, хочу сделать так что б при создании документа УстановкаЦенНоменклатуры для типа цены РОзница цена увеличивалась на процент из справочника ценовой группы, далее уже при реализации я буду выбирать возможную скидку,но для начала хочу сделать установку цен номенклатуры
1.Создаю документ "Поступление товаров и услуг" (в нем уже сделал колонку для отображения к какой ценовой группе относиться данный товар)
2.На основании создаю УстановкаЦенНоменклатуры, но вот не получается у меня вывести колонку мою по ГруппамЦен, где то не знаю где формируются колонки при создании на основании, основная проблема заключается в выводе этой колонки, а дальше я уже смогу сделать что б пересчитывалась цена розничная

Извиняюсь за много бУкаФФ, помогите плз в моем легком для Вас и не легком для меня
Ardi
То что я понял.
В приходной есть "Цена контрагента"
В форме "Цена контрагента" есть "Цена номенклатуры". Эта "цена номенклатуры" будет проставляться при вводе на основании.
Batchir
я в принципе понял о чем речь, т.к. нечто подобное приходилось делать.

В двух словах: представление табличной части документа выполнено в виде таблицы значений. Основные колонки добавлены на таблицу значений, а колонки с ценами добавляются программно. События обрабатывающие эти колонки также добавляются программно, и сама таблица значений переносится в табличную часть естественно программно.

Для того что бы отобразилась Ваша колонка:
1. нужно добавить её в табличную часть документа
2. добавить её в таблицу на форме,т.к. она не будет динамически формироваться в зависимости от выбранных типов цен
3. изменить процедуру которая отвечает за перенос данных из табличной части в таблицу значений на форме и наоборот.
4. ну и откорректировать процедуры которые отвечают за формирование цен.

В общем алгоритм вроде такой, но могу и ошибаться т.к. делал это достаточно давно.
bereznoy
Цитата(Batchir @ 10.09.12, 13:35) необходимо зарегистрироваться для просмотра ссылки
я в принципе понял о чем речь, т.к. нечто подобное приходилось делать.

В двух словах: представление табличной части документа выполнено в виде таблицы значений. Основные колонки добавлены на таблицу значений, а колонки с ценами добавляются программно. События обрабатывающие эти колонки также добавляются программно, и сама таблица значений переносится в табличную часть естественно программно.

Для того что бы отобразилась Ваша колонка:
1. нужно добавить её в табличную часть документа
2. добавить её в таблицу на форме,т.к. она не будет динамически формироваться в зависимости от выбранных типов цен
3. изменить процедуру которая отвечает за перенос данных из табличной части в таблицу значений на форме и наоборот.
4. ну и откорректировать процедуры которые отвечают за формирование цен.

В общем алгоритм вроде такой, но могу и ошибаться т.к. делал это достаточно давно.


1. Добавил справочник, добавил в табличную часть документа и указала на справочникссылку
2.В форме добавил, но при добавлении на основании ее нет, добавляется ТАблицаЦен в которой нет моей новой колонки.
3.Смотрел процедуру
ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ДокументПоступление,Перезаполнение=Ложь)
как не нашел где формируются именно нуЖные колонки, лишние в процедурах пробежался убрал, которые использовать не буду, причем убрал что не заполняется их значение, а сами колонки остались пустыми, как их убрать тоже не понятно. В общем проблема заключается в том, что я не пойму - в какой процедуре формируются динамически колонки при создании документа на основании в зависимости от типа цены
Batchir
Посмотрите ОбновитьСоставКолонок()
bereznoy
Цитата(Batchir @ 11.09.12, 11:51) необходимо зарегистрироваться для просмотра ссылки
Посмотрите ОбновитьСоставКолонок()

Смотрел, лишние поубирал, нужные добавил
п.с. колонка характеристики так и оставил, но данные прописал к моему новому справочнику.
убрать бы еще способ и проценты, но они уже убраны, а при создании на основании все равно есть.

 ! 

Правила п.2
 

Процедура ОбновитьСоставКолонок()

    // Надо расположить все нужные колонки в правильном порядке.
    // Сначала должна идти колонка "Код".
    КолонкиТаблицыЦен = ТаблицаЦен.Колонки;
    ОчереднойНомерКолонки = 1;

    ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Код");
    СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);

    ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Артикул");
    СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);

    ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Номенклатура");
    СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);

    ТекущаяКолонка = КолонкиТаблицыЦен.Найти("ХарактеристикаНоменклатуры");
    СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);

    Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл
        Если НЕ ЗначениеЗаполнено(СтрокаТипаЦен.ТипЦен) Тогда
            Продолжить;
        КонецЕсли;

        НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТипаЦен.ТипЦен];
        Если НомерСоответствияТекущейКолонки = Неопределено Тогда
            НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен.Количество();
            мСоответствиеТиповЦен.Вставить(СтрокаТипаЦен.ТипЦен, мСоответствиеТиповЦен.Количество());
        КонецЕсли;

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

        // Единица измерения.
        ТекущаяКолонка = КолонкиТаблицыЦен.Найти("единица" + НомерСоответствияТекущейКолонки);
        Если ТекущаяКолонка = Неопределено Тогда // надо вставить
            КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "единица"+НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"), "Единица", 8);
            ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1;
        Иначе
            СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);
        КонецЕсли;
        
        // Цена.
        ТекущаяКолонка = КолонкиТаблицыЦен.Найти("цена" + НомерСоответствияТекущейКолонки);
        Если ТекущаяКолонка = Неопределено Тогда // надо вставить
            КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "цена" + НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2, ДопустимыйЗнак.Неотрицательный), СокрЛП(СтрокаТипаЦен.ТипЦен), 10);
            ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1;
        Иначе
            СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);
        КонецЕсли;


КонецЦикла;
    ЭлементыФормы.ТаблицаЦен.СоздатьКолонки();

    // Установим недостающие параметры.
    УстановитьНедостающиеПараметры();

КонецПроцедуры // ОбновитьСоставКолонок()
Ardi
На примере конфигурации розница.
Колонка "Группа" добавлена в левой половине (до колонок с ценой).


Цитата
Процедура ОбновитьСоставКолонок()

// Надо расположить все нужные колонки в правильном порядке.
// Сначала должна идти колонка "Код".
КолонкиТаблицыЦен = ТаблицаЦен.Колонки;
ОчереднойНомерКолонки = 1;

ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Код");
СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);

ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Артикул");
СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);

ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Группа"); //РОМ++
СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); //РОМ++


Результат
bereznoy
С колонками которые динамически не появляются в[ ]зависимости от выбора типа цены все окей, а вот колонки которые появляются, необходимо убрать две,
вроде бы во всех процедурах закоменнтил их, но они все равно есть, причем при добавленнии на основании, вот процедурка при добавлении на основании

 ! 

Правила п.2.
Скорость написания Вами текста влияет на скорость получения ответа обратнопропорционально количеству грамматических и орфографических ошибок
 

Процедура ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ДокументПоступление,Перезаполнение=Ложь)
    Перем Отказ;
    Отказ = Ложь;
    ТипЦенБазовый = ДокументПоступление.ТипЦен.ТипЦеныНоменклатуры;
    Если ЗначениеЗаполнено(ТипЦенБазовый) И ТипЦенБазовый.Рассчитывается Тогда
        ОбщегоНазначения.СообщитьОбОшибке("В документе поступления для типа цены контрагента выбран динамический тип цен номенклатуры." + Символы.ПС+ "Расчет цен номенклатуры на основании цен контрагента выполнить невозможно!", Отказ);
    КонецЕсли;
    Если Отказ Тогда
        возврат;
    КонецЕсли;
    
    Если Не Перезаполнение Тогда
    
        // Получим подчиненные типы цен.
        ПодчиненныеТипыЦен = ПолучитьПодчиненныеТипыЦен(ТипЦенБазовый);
        ПодчиненныеТипыЦен.Добавить(ТипЦенБазовый);

        //Обойдем массив в обратном порядке.
        КоличествоПодчиненныхТипов = ПодчиненныеТипыЦен.Количество();
        Для Тмп = 1 По КоличествоПодчиненныхТипов Цикл
            СтрокаТабличнойЧасти = ТипыЦен.Добавить();
            СтрокаТабличнойЧасти.ТипЦен = ПодчиненныеТипыЦен[КоличествоПодчиненныхТипов - Тмп];
        КонецЦикла;

    Иначе
        ПодчиненныеТипыЦен = ТипыЦен.ВыгрузитьКолонку("ТипЦен");
    КонецЕсли;    
        
    //ЗаполнитьСписокТиповЦен();

    // Обновим состав колонок.
    ОбновитьСоставКолонок();
    //ПолучитьСтруктуруПоложенийКолонок();
    //ВидимостьКолонок();

    Запрос = Новый Запрос;

    Запрос.УстановитьПараметр("Дата", РабочаяДата);  
    Запрос.УстановитьПараметр("ДокументОснование", ДокументПоступление);
    Запрос.УстановитьПараметр("ПодчиненныеТипыЦен", ПодчиненныеТипыЦен);

    Запрос.Текст = "
    |ВЫБРАТЬ
    |    ТоварыИзДокумента.*,
    |    СпрТипыЦен.Ссылка КАК ТипЦен,
    |    СпрТипыЦен.ВалютаЦены КАК ВалютаТипаЦены,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ПроцентСкидкиНаценки, СпрТипыЦен.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены, СпрТипыЦен.СпособРасчетаЦены) КАК СпособРасчетаЦены
    |ИЗ
    |    (ВЫБРАТЬ
    |        Док.Ссылка.СуммаВключаетНДС КАК СуммаВключаетНДС,
    |        Док.Ссылка.ВалютаДокумента КАК ВалютаДокумента,
    |        Док.Номенклатура КАК Номенклатура,
    |        Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |        СРЕДНЕЕ(Док.Цена) КАК Цена,
    |        Док.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Док.СтавкаНДС КАК СтавкаНДС,
    |        МИНИМУМ(Док.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.ПоступлениеТоваровУслуг.Товары КАК Док
    |    ГДЕ
    |        Док.Ссылка = &ДокументОснование
    |    СГРУППИРОВАТЬ ПО
    |        Док.Ссылка.СуммаВключаетНДС,
    |        Док.Ссылка.ВалютаДокумента,
    |        Док.Номенклатура,
    |        Док.ХарактеристикаНоменклатуры,
    |        Док.ЕдиницаИзмерения,
    |        Док.СтавкаНДС
    |    ) КАК ТоварыИзДокумента
    |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    |    Справочник.ТипыЦенНоменклатуры КАК СпрТипыЦен
    |ПО
    |    СпрТипыЦен.Ссылка В (&ПодчиненныеТипыЦен)
    |ЛЕВОЕ СОЕДИНЕНИЕ
    |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен В (&ПодчиненныеТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
    |ПО
    |    СпрТипыЦен.Ссылка = ЦеныНоменклатурыСрезПоследних.ТипЦен
    |    И ТоварыИзДокумента.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |    И ТоварыИзДокумента.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
    |УПОРЯДОЧИТЬ ПО
    |    ТоварыИзДокумента.НомерСтроки
    |";

    СтруктураПоиска = Новый Структура;

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        СтруктураПоиска.Вставить("Номенклатура"              , Выборка.Номенклатура);
        СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", Выборка.Номенклатура.ЦеноваяГруппаНоменклатуры);
      
        
        СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТаблицаЦен, СтруктураПоиска);

        Если СтрокаТабличнойЧасти = Неопределено Тогда
            СтрокаТабличнойЧасти = ТаблицаЦен.Добавить();
            СтрокаТабличнойЧасти.Номенклатура               = Выборка.Номенклатура;
        
            СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.Номенклатура.ЦеноваяГруппаНоменклатуры;
            СтрокаТабличнойЧасти.ЦеноваяГруппаНоменклатуры = Выборка.Номенклатура.ЦеноваяГруппаНоменклатуры;
            СтрокаТабличнойЧасти.ПриходнаяЦена = Выборка.Цена;

        КонецЕсли;

        ТипЦенНоменклатуры = Выборка.ТипЦен;

        СтрокаТипаЦен = ТипыЦен.Найти(ТипЦенНоменклатуры);
        НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[ТипЦенНоменклатуры];

        ОкруглятьВБольшуюСторону = ТипЦенНоменклатуры.ОкруглятьВБольшуюСторону;
        ПорядокОкругления = ТипЦенНоменклатуры.ПорядокОкругления;
        
        
        ВалютаДокумента   = Выборка.ВалютаТипаЦены;
        ЕдиницаИзмерения  = Выборка.ЕдиницаИзмерения;
        БазоваяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Выборка.Цена,
                      Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатурыКонтрагентов,
                      Выборка.СуммаВключаетНДС,
                      ТипЦенНоменклатуры.ЦенаВключаетНДС,
                      ТипЦенНоменклатуры.ЦенаВключаетНДС,
                      НалоговыйУчет.ПолучитьСтавкуНДС(Выборка.СтавкаНДС));

    //    СпособРасчетаЦены = Выборка.СпособРасчетаЦены;
    //    НовыйПроцент      = Выборка.ПроцентСкидкиНаценки;

//            ЕдиницаИзмерения  = Выборка.ЕдиницаИзмерения;

        Если (НЕ ЗначениеЗаполнено(ТипЦенНоменклатуры.БазовыйТипЦен))
            ИЛИ ТипЦенБазовый = ТипЦенНоменклатуры Тогда
            НоваяЦена = БазоваяЦена;
            СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(Выборка.ВалютаТипаЦены, Дата);
            НоваяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(НоваяЦена, Выборка.ВалютаДокумента, Выборка.ВалютаТипаЦены, СтруктураКурсаВзаиморасчетов.Курс, СтруктураКурсаВзаиморасчетов.Кратность);
        Иначе
            //Если СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип Тогда
            //    НоваяЦена = БазоваяЦена * (1 + НовыйПроцент / 100);
            //ИначеЕсли СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоВхождениюБазовойЦеныВДиапазон Тогда
            //    НоваяЦена = Ценообразование.ПолучитьЦенуПоЦеновымДиапазонам(ТипЦенНоменклатуры, Дата, БазоваяЦена, ВалютаДокумента, ВалютаДокумента);
            //    НовыйПроцент = 0;
            //Иначе
            //    НоваяЦена = 0;
            //КонецЕсли;
            СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(Выборка.ВалютаТипаЦены, Дата);
            НоваяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(НоваяЦена, Выборка.ВалютаДокумента, Выборка.ВалютаТипаЦены, СтруктураКурсаВзаиморасчетов.Курс, СтруктураКурсаВзаиморасчетов.Кратность);
            
            НоваяЦена = Ценообразование.ОкруглитьЦену(НоваяЦена, ПорядокОкругления, ОкруглятьВБольшуюСторону);
        КонецЕсли;

        СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки]          = НоваяЦена;
//        СтрокаТабличнойЧасти["СпособРасчета" + НомерСоответствияТекущейКолонки] = СпособРасчетаЦены;
        СтрокаТабличнойЧасти["валюта" + НомерСоответствияТекущейКолонки]        = ВалютаДокумента;
        СтрокаТабличнойЧасти["единица" + НомерСоответствияТекущейКолонки]       = ЕдиницаИзмерения;
    //    СтрокаТабличнойЧасти["процент" + НомерСоответствияТекущейКолонки]       = НовыйПроцент;
КонецЦикла;

КонецПроцедуры //


А вот эти колонки



Пробежался поиском по модулю, закоменнтил везде где есть название ненужной мне колонки
bereznoy
Благополучно на основании создает и заполняет мои новые колонки, но после записи документа, при открытии его остаются значения только тех реквизитов, что были раньше, а мои новые колонки пустые,
я так понимаю где то мои колонки не записываются во временную таблицу, подскажите плиз куда смотреть при записи/проведении что б они сохранялись?
MATEVI
Цитата(bereznoy @ 12.09.12, 21:23) необходимо зарегистрироваться для просмотра ссылки
Благополучно на основании создает и заполняет мои новые колонки, но после записи документа, при открытии его остаются значения только тех реквизитов, что были раньше, а мои новые колонки пустые,
я так понимаю где то мои колонки не записываются во временную таблицу, подскажите плиз куда смотреть при записи/проведении что б они сохранялись?

Думаю надо смотреть ПРиОткрытии() проц ЗаполнитьТаблицуЦенФормы() и добавить заполнение своих колонок
bereznoy
Фухх, все получилось, дописал в процедуру ПередЗаписью() запись реквизитов из временную таблицы в "Товары" и в процедуре ЗаполнитьТаблицуЦенФормы() выгрузил
из таблицы товаров в колонки соотвествующие, выкладываю свои процедурки, быть может есть косяки
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    // Сохраним таблицу значений в табличную часть товаров.
    Товары.Очистить();
    КоличествоСтрок = ТаблицаЦен.Количество() - 1;
    Для Тмп = 0 По КоличествоСтрок Цикл
        СтрокаТаблицыТиповЦен = ТаблицаЦен[Тмп];

        Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл
            НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТипаЦен.ТипЦен];

            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.ИндексСтрокиТаблицыЦен     = Тмп;
            НоваяСтрока.Номенклатура               = СтрокаТаблицыТиповЦен.Номенклатура;
            
            НоваяСтрока.ХарактеристикаНоменклатуры = СтрокаТаблицыТиповЦен.ХарактеристикаНоменклатуры;
            НоваяСтрока.ТипЦен                     = СтрокаТипаЦен.ТипЦен;
            НоваяСтрока.Цена                       = СтрокаТаблицыТиповЦен["цена" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.Валюта                     = СтрокаТаблицыТиповЦен["валюта" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.ЕдиницаИзмерения           = СтрокаТаблицыТиповЦен["единица" + НомерСоответствияТекущейКолонки];
            НоваяСтрока.ПриходнаяЦена = СтрокаТаблицыТиповЦен.ПриходнаяЦена;
            НоваяСтрока.НаценкаТрансп = СтрокаТаблицыТиповЦен.НаценкаТрансп;
            НоваяСтрока.ЦеноваяГруппаНоменклатуры = СтрокаТаблицыТиповЦен.ЦеноваяГруппаНоменклатуры;
        
        КонецЦикла;
    КонецЦикла;

КонецПроцедуры // ПередЗаписью()



и вторая

Процедура ЗаполнитьТаблицуЦенФормы()

    Если ТипыЦен.Количество() = 0 Тогда // ничего делать не надо
        Возврат;
    КонецЕсли;

    ТаблицаТоваров = Товары.Выгрузить();
    ТаблицаТоваров.Сортировать("ИндексСтрокиТаблицыЦен, Номенклатура, ХарактеристикаНоменклатуры");

    ТекущийИндексСтрокиТаблицыЦен = Неопределено;
    НоваяСтрока = Неопределено;
    Для Каждого СтрокаТаблицыТоваров Из ТаблицаТоваров Цикл
        Если ТекущийИндексСтрокиТаблицыЦен <> СтрокаТаблицыТоваров.ИндексСтрокиТаблицыЦен
         Или НоваяСтрока.Номенклатура <> СтрокаТаблицыТоваров.Номенклатура
         Или НоваяСтрока.ХарактеристикаНоменклатуры <> СтрокаТаблицыТоваров.ХарактеристикаНоменклатуры Тогда
            НоваяСтрока = ТаблицаЦен.Добавить();
            НоваяСтрока.Номенклатура = СтрокаТаблицыТоваров.Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = СтрокаТаблицыТоваров.ХарактеристикаНоменклатуры;
            ТекущийИндексСтрокиТаблицыЦен = СтрокаТаблицыТоваров.ИндексСтрокиТаблицыЦен;
        КонецЕсли;

        НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТаблицыТоваров.ТипЦен];

        НоваяСтрока["цена" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.Цена;
    //    НоваяСтрока["СпособРасчета" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.СпособРасчетаЦены;
        НоваяСтрока["валюта" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.Валюта;
        НоваяСтрока["единица" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.ЕдиницаИзмерения;
    //    НоваяСтрока["процент" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.ПроцентСкидкиНаценки;
    НоваяСтрока.ПриходнаяЦена = СтрокаТаблицыТоваров.ПриходнаяЦена;
    НоваяСтрока.ЦеноваяГруппаНоменклатуры = СтрокаТаблицыТоваров.ЦеноваяГруппаНоменклатуры;
    НоваяСтрока.НаценкаТрансп = СтрокаТаблицыТоваров.НаценкаТрансп;

    
    
        КонецЦикла;

КонецПроцедуры // ЗаполнитьТаблицуЦенФормы()



Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.