Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Несколько типов цен в одном документе Установка цен.

Несколько типов цен в одном документе Установка цен.
Я
   RasuLL
 
02.01.13 - 15:31
Пытаюсь в документ добавить два типа цен

ДокУстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
        ДокУстановкаЦен.Дата = Дата;
        ДокУстановкаЦен.ТипыЦен.Очистить();
        ВыборкаТипЦен = ДокУстановкаЦен.ТипыЦен.Добавить();
        ВыборкаТипЦен2 = ДокУстановкаЦен.ТипыЦен.Добавить();
        ТипЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001");
        ТипЦены2 = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000002");
        ВыборкаТипЦен.ТипЦен = ТипЦены;    
        ВыборкаТипЦен2.ТипЦен = ТипЦены2;
тчТовары = ДокУстановкаЦен["Товары"];
        СтрокаТаблицаТовары = тчТовары.Добавить();
        СтрокаТаблицаТовары["Номенклатура"] = НовыйЭлемент.Ссылка;
        СтрокаТаблицаТовары["Валюта"]       = ВалютаДок;
        СтрокаТаблицаТовары["ЕдиницаИзмерения"] = НовыйЭлемент.ЕдиницаХраненияОстатков;
        СтрокаТаблицаТовары["ТипЦен"]       = ТипЦены;
        СтрокаТаблицаТовары["Цена"]         = ЦенаПервая;
        СтрокаТаблицаТовары["ТипЦен"]       = ТипЦены2;
        СтрокаТаблицаТовары["Цена"]         = ЦенаВторая;

выбирает только второй тип цен...в чем ошибка?
 
 
   IamAlexy
 
1 - 02.01.13 - 15:32
вот   в этом:


        СтрокаТаблицаТовары["ТипЦен"]       = ТипЦены;
        СтрокаТаблицаТовары["Цена"]         = ЦенаПервая;
        СтрокаТаблицаТовары["ТипЦен"]       = ТипЦены2;
        СтрокаТаблицаТовары["Цена"]         = ЦенаВторая;
   RasuLL
 
2 - 02.01.13 - 15:33
(1) а как правильней?
   IamAlexy
 
3 - 02.01.13 - 15:34
(2) правильнее не так..
ибо так ты сначала в реквизит пишешь типцены1 а затем туда же поверх типцены2


что за конфа то?
как правило установка цен все же только по одному типу цен устанавливает и по одной валюте...
   RasuLL
 
4 - 02.01.13 - 15:36
(3) УТ 10,3. Хочу установить закупочную и продажную цену в один документ. А как выбрать отдельно?
   Сияющий Асинхраль
 
5 - 02.01.13 - 15:38
Рабочий текст:

           
            ДокЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
            ДокЦен.Дата = РабочаяДата;
            ДокЦен.НеПроводитьНулевыеЗначения = Ложь;
            ДокЦен.Ответственный = Ответственный;
            
            Для Каждого Строка Из тзТиповЦен Цикл
                СтрокаТЦ = ДокЦен.ТипыЦен.Добавить();
                СтрокаТЦ.ТипЦен = Строка.ТипЦены;
                
            КонецЦикла;
            
            Тмп = 0;
            ПустаяХарактеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
            
            Для Счетчик = 0 По ВсегоСтрокДляЦикла Цикл
                
                СтрокаТаблицыТиповЦен = тзОсн[Счетчик];
                
                Если СтрокаТаблицыТиповЦен.ЭтоЭлемент = 0 Тогда
                    Продолжить;
                КонецЕсли;
                
                Для Каждого Строка Из тзТиповЦен Цикл
                    
                    НоваяСтрока = ДокЦен.Товары.Добавить();
                    НоваяСтрока.ИндексСтрокиТаблицыЦен     = Тмп;
                    НоваяСтрока.Номенклатура               = СтрокаТаблицыТиповЦен.спрНоменклатура;
                    НоваяСтрока.ХарактеристикаНоменклатуры = ПустаяХарактеристика;
                    НоваяСтрока.ТипЦен                     = Строка.ТипЦены;
                    НоваяСтрока.Цена                       = СтрокаТаблицыТиповЦен["Цена_" + Строка.НомерКолонкиВЛистеЗагрузки];
                    НоваяСтрока.Валюта                     = глЗначениеПеременной("ВалютаУправленческогоУчета");;
                    НоваяСтрока.ЕдиницаИзмерения           = СтрокаТаблицыТиповЦен.спрНоменклатура.ЕдиницаХраненияОстатков;
                    НоваяСтрока.ПроцентСкидкиНаценки       = 0;
                    
                КонецЦикла;
                
                Тмп = Тмп + 1;
                
            КонецЦикла;
            
            ДокЦен.Записать(РежимЗаписиДокумента.Проведение);
            
        КонецЕсли;
   RasuLL
 
6 - 02.01.13 - 15:41
(5) тут тоже 1 тип цены, а как чтоб несколько?
   Сияющий Асинхраль
 
7 - 02.01.13 - 15:45
(6) Тут произвольное количество типов цен. Обрати внимание:

Для Каждого Строка Из тзТиповЦен Цикл
    СтрокаТЦ = ДокЦен.ТипыЦен.Добавить();
    СтрокаТЦ.ТипЦен = Строка.ТипЦены;
                
КонецЦикла;

Это кусок загрузки произвольного количества типов цен из экселя...
   Сияющий Асинхраль
 
8 - 02.01.13 - 15:48
+(7) Сам документ установки цен - своеобразный документ, в каждой строке ТЗ хранится одна цена, а отображается в форме не табличная часть, а таблица значений, которая строится по табличной части...
   Сияющий Асинхраль
 
9 - 02.01.13 - 15:57
+(8) Соответственно, чтобы добавить две цены, надо добавить две строки документа с одной номенклатурой и разными ценами
Строки эти различаются значением индекса:

НоваяСтрока.ИндексСтрокиТаблицыЦен     = Тмп;

а ты добавляешь одну строку, и в этой одной строке перезаписываешь тип цены и цену, см. (1)
   RasuLL
 
10 - 02.01.13 - 15:57
(8) Спасибо! Добавила вторую строку ТЧ.
тчТовары = ДокУстановкаЦен["Товары"];
        СтрокаТаблицаТовары = тчТовары.Добавить();
        СтрокаТаблицаТовары["Номенклатура"] = НовыйЭлемент.Ссылка;
        СтрокаТаблицаТовары["Валюта"]       = ВалютаДок;
        СтрокаТаблицаТовары["ЕдиницаИзмерения"] = НовыйЭлемент.ЕдиницаХраненияОстатков;
        СтрокаТаблицаТовары["ТипЦен"]       = ТипЦены;
        СтрокаТаблицаТовары["Цена"]         = ЦенаПервая;
       //Запишем товар и цену во вторую тч
 
        тчТовары2 = ДокУстановкаЦен["Товары"];
        СтрокаТаблицаТовары = тчТовары2.Добавить();
        СтрокаТаблицаТовары["Номенклатура"] = НовыйЭлемент.Ссылка;
        СтрокаТаблицаТовары["Валюта"]       = ВалютаДок;
        СтрокаТаблицаТовары["ЕдиницаИзмерения"] = НовыйЭлемент.ЕдиницаХраненияОстатков;
        СтрокаТаблицаТовары["ТипЦен"]       = ТипЦены2;
        СтрокаТаблицаТовары["Цена"]         = ЦенаВторая;
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует