Имя: Пароль:
1C
 
Как установить ТипЦен в Документе УстановкаЦенНоменклатуры
0 VBMADD
 
19.02.07
12:22
Как установить ТипЦен в Документе УстановкаЦенНоменклатуры
1 Scooter
 
19.02.07
12:24
Нажмите на кнопку выбора
2 VBMADD
 
19.02.07
12:29
Не могу разобраться с кодом

       НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
       НовыйДокумент.Дата = ТекущаяДата();
       СпрТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00001"); //Закупочная(руб)
       НовыйДокумент.ТипыЦен = СпрТипЦен;
       НоваяСтрока = НовыйДокумент.Товары.Добавить();
       НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("0000001");
       НоваяСтрока.Валюта = Справочники.Валюты.НайтиПоКоду("810");
       НоваяСтрока.Цена = 100;
       НовыйДокумент.Записать();
3 Scooter
 
19.02.07
12:31
Не моё (c)

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

4 avmlvm
 
19.02.07
12:36
(2) А в чём трудность "разобраться"? что не понятно?
5 avmlvm
 
19.02.07
12:39
(3) (задумчиво) у меня в УПП ТипЦен - это реквизит ВСЕГО документа.. А в приведённом коде он "меняется для КАЖДОЙ СтрокиТовара

хм-м-м.. странно :-)
6 VBMADD
 
19.02.07
12:41
Не работант код:

СпрТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00001"); //Закупочная(руб)
НовыйДокумент.ТипыЦен = СпрТипЦен;

Как правильно закодить?
7 Scooter
 
19.02.07
12:42
(5)я написал не моё
не разбирался, но это рабочий код, работал на старых релизах (1.0..., 1.1...)
8 Scooter
 
19.02.07
12:43
(6)у тебя ТипыЦен - это ТЧ?
9 avmlvm
 
19.02.07
12:50
(6) Мой кусор РАБОТАЮЩЕГО кода:

   ДокументУЦН = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
   ДокументУЦН.Дата = Дата (2007,01,01,0,0,0);
   ТипЦен = ДокументУЦН.ТипыЦен.Добавить();
   ТипЦен.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Плановая себестоимость");
   ДокументУЦН.НеПроводитьНулевыеЗначения = Ложь;


ЗЫ.. А ты уверен, что у тебя "НайтиПоКоду("00001")" - что либо находит? Почему не делаешь проверку на СпрТипЦен.Пустая()?
10 VBMADD
 
19.02.07
13:05
(9) Находит, не в этом дело.
Я рассматривал ТипЦен как реквизит документа, а он - строка в табличной части.
Вот тут то я и туплю...
11 VBMADD
 
19.02.07
13:13
Сорри, вызывыет начальник...
Ой щас дыню вставит за то что не успел сделать Установку цен ...
12 VBMADD
 
19.02.07
20:25
11111111111111
13 megalodon
 
19.02.07
20:34
в УТ тип цен для тсроки задается и еще есть табличная часть типы цен.
14 VBMADD
 
19.02.07
20:56
Да мне надо пройтись по документу Оприходование товара, а там номенклатуры 3000шт
и создать документ УстановкаЦенНоменклатуры по ентой номенклатуре.
Вроде задачка немудреная, а заковырялся мля.
15 VBMADD
 
19.02.07
21:00
Код такой не работает:
============================================================
       Документ= Документы.ОприходованиеТоваров.Выбрать();
       Документ.Следующий();
       НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
       НовыйДокумент.Дата = ТекущаяДата();
       СпрТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00001"); //Закупочная(руб)
       НовыйДокумент.ТипыЦен = СпрТипЦен;
       Для Каждого ТекСтрока из Документ.Товары Цикл
          НоваяСтрока = НовыйДокумент.Товары.Добавить();
          НоваяСтрока.Номенклатура = ТекСтрока.Номенклатура;
          НоваяСтрока.Валюта = Справочники.Валюты.НайтиПоКоду("810");
          НоваяСтрока.ЕдиницаИзмерения = ТекСтрока.ЕдиницаИзмерения;
          НоваяСтрока.Цена = ТекСтрока.Цена;
       КонецЦикла;
       НовыйДокумент.Записать();

Где зарылась собака?
16 Пианист
 
19.02.07
21:28
(15)Тебе ж сказали -в УстановкеЦенНоменклатуры 2 ТЧ.Добаввь строку в ТЧ ТипыЦен
17 Пианист
 
19.02.07
21:33
СпрТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00001");
       
 СтрТЧТипыЦен = НовыйДокумент.ТипыЦен.Добавить();
 СтрТЧТипыЦен.ТипЦен = СпрТипЦен;
Для Каждого ТекСтрока из Документ.Товары Цикл
          НоваяСтрока = НовыйДокумент.Товары.Добавить();
          НоваяСтрока.Номенклатура = ТекСтрока.Номенклатура;
          НоваяСтрока.Валюта = Справочники.Валюты.НайтиПоКоду("810");
     НоваяСтрока.ТипЦен = СпрТипЦен;
18 VBMADD
 
19.02.07
21:34
(15) Не серчай сильно, помоги разобраться ближнему
       Документ= Документы.ОприходованиеТоваров.Выбрать();
       Документ.Следующий();
   НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
        НовыйДокумент.Дата = ТекущаяДата();
       ТипЦен = НовыйДокумент.ТипыЦен.Добавить();
       ТипЦен.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00006");//Закупочная(руб)
       НовыйДокумент.НеПроводитьНулевыеЗначения = Ложь;
       Для Каждого ТекСтрока из Документ.Товары Цикл
          НоваяСтрока = НовыйДокумент.Товары.Добавить();
          НоваяСтрока.Номенклатура = ТекСтрока.Номенклатура;
          НоваяСтрока.Валюта = Справочники.Валюты.НайтиПоКоду("810");
          НоваяСтрока.ЕдиницаИзмерения = ТекСтрока.ЕдиницаИзмерения;
          НоваяСтрока.Цена = ТекСтрока.Цена;
       КонецЦикла;
       НовыйДокумент.Записать();

Записывает Документ и не ругается.

Открываю и имею сообщение
=====================================
{Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента(579)}: Поле объекта не обнаружено (цена)
       НоваяСтрока["цена"+НомерСоответствияТекущейКолонки]    = СтрокаТаблицыТоваров.Цена;
=====================================

А в документе всего одна строка без цены вместо 3000 шт
19 VBMADD
 
19.02.07
21:42
Усек, заработало....
Спаибо всем терпеливым и добрым людям,
не бросили крестьянина в беде.
Да будет вам много радости...