Программное заполнение Документа Установка Цен Номенклатуры c несколькими ценами

1. illiona 26.05.17 09:53 Сейчас в теме
Добрый день. Помогите разобраться. Создаю программно установку цен.
Как каждому товару установить несколько цен

ДокУЦ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокУЦ.Дата = ТекущаяДата();
    ДокУЦ.Ответственный = Пользователи.ТекущийПользователь();
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Базовая цена поставщика");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Дилерская цена прихода");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая 1");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая 2");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая 3");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Цена спец.предложения");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
    ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Цена спец.предложения 2");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦены;
Показать


Читаю данные для даполнения из таблицы с формы
Для каждого СтрД Из ТаблицаДанные1 Цикл
        НоваяСтрока = ДокУЦ.Товары.Добавить();
   СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура);
   НоваяСтрока.Номенклатура = СпрНом;
//а цен у каждого товара должно быть несколько

    КонецЦикла;
Прикрепленные файлы:
radioaktive; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user633533_encantado 11 26.05.17 10:57 Сейчас в теме
И конечно не указано о какой конфигурации идет речь...
Предположу, что это УТ 10, там строки таблицы с номенклатурой связаны со строками таблицы типов цен служебным реквизитом.
3. illiona 26.05.17 11:37 Сейчас в теме
Да Это УТ 10.3
Подскажите как их связать чтоб данные записать
4. ResetAtreides 26.05.17 12:29 Сейчас в теме
(3) В ТЧ "Товары" есть реквизит "ИндексСтрокиТаблицыЦен", в него пишите номер строки ТЧ "ТипыЦен", в котором указан нужный тип цены. Сам тип цены тоже указывается в реквизите "ТипЦен". Остальные реквизиты заполняются как обычно(как на форме видно).
Т.е. у вас там восемь типов цен, и для каждой строки товаров будет по восемь строк с ценами, для каждого типа цены
6. DAL 26.05.17 13:13 Сейчас в теме
Л - Логика.

Имеем две табличные части:

1. ТипыЦен
2. Товары

В типах цен указываешь несколько видов цен, по которым производится установка.

ВидЦеныБазоваяПоставщика = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Базовая цена поставщика");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦеныБазоваяПоставщика ;
 ВидЦеныПродажная = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить();
    ТЧВидЦены.ТипЦен = ВидЦеныПродажная ;


В товарах в каждой строке указываешь, к какой строке из табличной части ТипыЦен она относится. Ответ (4) правильно сказал.

Для каждого СтрД Из ТаблицаДанные1 Цикл
    
        СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура);

//Строка с первой ценой

        НоваяСтрока = ДокУЦ.Товары.Добавить();
        НоваяСтрока.Номенклатура = СпрНом;

        НоваяСтрока.ТипЦен = ВидЦеныБазоваяПоставщика;
        НоваяСтрока.ИндексСтрокиТаблицыЦен = 1;
        НоваяСтрока.Цена = СтрД.ЗакупочнаяЦена;

//Строка со второй ценой
        НоваяСтрока = ДокУЦ.Товары.Добавить();
        НоваяСтрока.Номенклатура = СпрНом;

        НоваяСтрока.ТипЦен = ВидЦеныПродажная;
        НоваяСтрока.ИндексСтрокиТаблицыЦен = 2;
        НоваяСтрока.Цена = СтрД.ЗакупочнаяЦена;

//а цен у каждого товара должно быть несколько

    КонецЦикла;
Показать
5. ResetAtreides 26.05.17 12:34 Сейчас в теме
(3) Примерно так:
Для каждого СтрД Из ТаблицаДанные1 Цикл
	СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура);
	Для Каждого СтрокаТипаЦены Из ДокУЦ.ТипыЦен Цикл
                НоваяСтрока = ДокУЦ.Товары.Добавить();
   		НоваяСтрока.Номенклатура = СпрНом;
		
		НоваяСтрока.ИндексСтрокиТаблицыЦен = СтрокаТипаЦены.НомерСтроки;
		НоваяСтрока.ТипЦен = СтрокаТипаЦены.ТипЦен;
		
		...
		
	КонецЦикла;
КонецЦикла;
Показать
7. Shalopay 10.07.17 17:55 Сейчас в теме
Всем привет!
В КА1.1 та же самая беда, колдовство с ИндексомСтрокиТаблицыЦен не помогает.
При открытии документа, получается несколько строк с одной и той же номенклатурой, в каждой строке заполнен только 1 ТипЦен.
Помогите разобраться, плизззззз!
8. FLYYY1986 07.09.17 10:31 Сейчас в теме
Индекс у всех типов цен для одной номенклатуры должен быть одинаков, т.е.
Для каждого СтрД Из ТаблицаДанные1 Цикл
    
        СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура);

//Строка с первой ценой

Инд = 1;

        НоваяСтрока = ДокУЦ.Товары.Добавить();
        НоваяСтрока.Номенклатура = СпрНом;

        НоваяСтрока.ТипЦен = ВидЦеныБазоваяПоставщика;
        НоваяСтрока.ИндексСтрокиТаблицыЦен = Инд;
        НоваяСтрока.Цена = СтрД.ЗакупочнаяЦена;

//Строка со второй ценой
        НоваяСтрока = ДокУЦ.Товары.Добавить();
        НоваяСтрока.Номенклатура = СпрНом;

        НоваяСтрока.ТипЦен = ВидЦеныПродажная;
        НоваяСтрока.ИндексСтрокиТаблицыЦен = Инд;
        НоваяСтрока.Цена = СтрД.ЗакупочнаяЦена;

//а цен у каждого товара должно быть несколько
Инд = Инд +1;
    КонецЦикла;
Показать
vika64; Divedition; +2 Ответить
9. FilonovEI 25.05.18 18:05 Сейчас в теме
Помогите пожалуйста создать обработки.

1. Изменить табличные части всех документов установка цен
номенклатуры установив везде цену равную 1000

2. Снять с проведения все установки цен номенклатуры в указанном
периоде (период задается с помощью даты начала и окончания на
форме обработки)

3. Изменить цену для конкретного товара во всех документах
установка цен номенклатуры - установить 5000. (Номенклатуру,
которую будем менять выбираем на форме обработки – также как
добавляли дату начала и дату окончания. Используем обход
табличной части документа и вспоминаем как задавали условия –
чтобы менять не все а только то, что нужно)
10. FilonovEI 25.05.18 18:09 Сейчас в теме
Помогите пожалуйста создать обработки.

1. Изменить табличные части всех документов установка цен
номенклатуры установив везде цену равную 1000

2. Снять с проведения все установки цен номенклатуры в указанном
периоде (период задается с помощью даты начала и окончания на
форме обработки)

3. Изменить цену для конкретного товара во всех документах
установка цен номенклатуры - установить 5000. (Номенклатуру,
которую будем менять выбираем на форме обработки – также как
добавляли дату начала и дату окончания. Используем обход
табличной части документа и вспоминаем как задавали условия –
чтобы менять не все а только то, что нужно)
11. vika64 75 11.04.23 17:50 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот