Имя: Пароль:
1C
1С v8
док Установка цен номенклатуры УТ 10.3
0 pin4er
 
04.01.14
16:20
Приветствую вас форумчане, всех с наступившими и еще наступающими праздниками!!! С новым 2014 годом

Помогите пожалуйста с программным созданием документа "Установка цен номенклатуры" в УТ 10.3

Дело вот как обстоит, из ЭКСеля гружу номенклатурц в БД (тут все ок программно перенес).
а далее пытаюсь для имеющейся номенклатуры заполнить цены "Закупочная" и "Розничная".
[URL=http://s2.ipicture.ru/][IMG]http://s2.ipicture.ru/uploads/20140104/F1UuuVCV.jpg[/IMG][/URL]

Вот никак программно не могу задать чтоб он у меня подставлял в "ТИП ЦЕН" предварительно созданные: "Закупочная" и "Розничная".
И не совсем понял как добавить номенклатуру в документ

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


Подскажите как правильно сделать?
1 pin4er
 
04.01.14
16:21
некорректно вставиласась картинка
вот она http://s2.ipicture.ru/uploads/20140104/F1UuuVCV.jpg
2 SherifSP
 
04.01.14
16:22
(0) Может я чего не знаю, но говорят пинчерам не помогать)
3 pin4er
 
04.01.14
16:25
(2) Кто говорит не помогать?
4 mehfk
 
04.01.14
16:29
Бред.

    ДокРегистрации.ТипыЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Закупочная");

ТипыЦен это табличная часть.
5 pin4er
 
04.01.14
16:30
(4) в этом плане согласен, на этом в Ошибку падает, никак не могу вот заполнить
6 SherifSP
 
04.01.14
16:30
(3) Весь форум
7 mehfk
 
04.01.14
16:31
Ну и далее тоже бред
Товары - это тоже табличная часть.
8 pin4er
 
04.01.14
16:35
(7) ну там я пытаюсь из ТЗ каждую строку добавить

а как правильно тогда будет?
сначала добавляем строку, потом заполняем данными по имеющейся номенклатуре из ЭКСельки
9 pin4er
 
04.01.14
16:36
(6) да ну, не видел таких и не слышал=)
10 Eugeneer
 
04.01.14
16:45
Безобразный код.
И в таб часть Товары есть реквизит ТипЦен - его никто не отменял к заполнению также.
11 pin4er
 
04.01.14
17:05
(10) Так пока не заполнишь ТипЦен ничего добавить и нельзя....

а как правильно его получить тогда?
12 Eugeneer
 
04.01.14
17:09
Что мешает на морду обработки добавить реквизит, чтобы юзер выбрал тип цен. и его заполнять
13 m-serg74
 
04.01.14
18:18
(11) еще важно, если в одном документе несколько типов цен, в Товары правильно заполнить ИндексСтрокиТаблицыЦен
14 marvak
 
04.01.14
18:25
(0)
Заполни вручную документ УстановкаЦенНоменклатуры как тебе нужно (на пару строк номенклатуры) и потом посмотри в отладчике или консолью запросов как и что там заполнилось в табличных частях. По аналогии заполняй программно.
15 Eugeneer
 
05.01.14
00:32
(13) садись - двойка. какой нафиг индекс - там такого реквизита нет.
16 m-serg74
 
05.01.14
00:48
(15) глянь сначала, потом двойки ставь
17 m-serg74
 
05.01.14
00:53
18 Eugeneer
 
05.01.14
00:56
(17) Это что за УТ? Версия? за 10 лет  существаования УТ10 этого реквизита отродясь не было.
19 mehfk
 
05.01.14
00:59
(18) Поржал.
20 m-serg74
 
05.01.14
01:00
(18) никогда не видел не значит отродясь не было
http://savepic.su/4035069.jpg
21 pin4er
 
05.01.14
10:40
Посмотрел на созданном документе где и чего заполняется, получается так:
без комментированного текста, документ создается и проводится, но в него когда заходишь все равно не указан ТипЦен.... и приходится выбирать руками, и потом только можно добавлять строки.

как все таки правильно заполнить?, подскажите пожалуйста

    ДокРегистрации = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокРегистрации.Дата = ТекущаяДата();
    ДокРегистрации.Информация = "Закупочная";
    //Для Каждого текСтрока из ТЗ Цикл
    //    Если текСтрока.СуммаЗакупка = "" Тогда
    //        Сообщить("У данной номенклатуры: " + текСтрока.НомерНоменклатуры + ", не заполнена сумма закупки");
    //    Иначе    
    //        ТЧТовары = ДокРегистрации.Товары.Добавить();
    //        ТЧТовары.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(текСтрока.НомерНоменклатуры);
    //        ТЧТовары.Валюта = Справочники.Валюты.НайтиПоКоду(643, Истина);
    //        ТЧТовары.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СОКРЛП(текСтрока.БазоваЕденицаИзмерения), Истина);
    //        //ТЧТовары.ТипЦен = "Закупочная";
    //        ТЧТовары.Цена = текСтрока.СуммаЗакупка;
    //    КонецЕсли;
    //КонецЦикла;    
    ДокРегистрации.Записать(РежимЗаписиДокумента.Проведение);
22 pin4er
 
05.01.14
10:40
а делаю на "Управление торговлей", редакция 10.3 (10.3.26.2)
23 m-serg74
 
05.01.14
11:18
(22)
ДокЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовСтр = ДокЦен.ТипыЦен.Добавить();
НовСтр.ТипЦен = СпрТипЦеныЗакупка;
НовСтр = ДокЦен.ТипыЦен.Добавить();
НовСтр.ТипЦен = СпрТипЦеныРозница;
мИндексСтрокиТаблицыЦен = 0;
//мТабл_Знач_Номенклатура_Цены - таблица значений, структрура полей - Номенклатура/ЦенаЗакупка/ЦенаРозница
Для каждого мСтрока Из мТабл_Знач_Номенклатура_Цены Цикл
    НовСтрЦ = ДокЦен.Товары.Добавить();
    НовСтрЦ.Номенклатура = мСтрока.СпрНоменклатура;
    НовСтрЦ.Цена = мСтрока.ЦенаЗакупка;
    НовСтрЦ.ЕдиницаИзмерения = мСтрока.Номенклатура.ЕдиницаХраненияОстатков;
    НовСтрЦ.ТипЦен = СпрТипЦеныЗакупка;
    НовСтрЦ.ИндексСтрокиТаблицыЦен = мИндексСтрокиТаблицыЦен;
    
    НовСтрЦ = ДокЦен.Товары.Добавить();
    НовСтрЦ.Номенклатура = мСтрока.СпрНоменклатура;
    НовСтрЦ.Цена = мСтрока.ЦенаРозница;
    НовСтрЦ.ЕдиницаИзмерения = мСтрока.СпрНоменклатура.ЕдиницаХраненияОстатков;
    НовСтрЦ.ТипЦен = СпрТипЦеныРозница;
    НовСтрЦ.ИндексСтрокиТаблицыЦен = мИндексСтрокиТаблицыЦен;
    
    мИндексСтрокиТаблицыЦен = мИндексСтрокиТаблицыЦен + 1;
КонецЦикла;
ДокЦен.ПолучитьФорму().Открыть();
24 m-serg74
 
05.01.14
11:21
(22) в (23)
".СпрНоменклатура" = ".Номенклатура"
25 marvak
 
05.01.14
11:27
(23) Ну вот, пока не сделаешь за человека, толку не будет.
:)
26 Eugeneer
 
05.01.14
13:01
Автора гнать надо с работы. Неуч.
27 pin4er
 
05.01.14
13:33
(26) Спасибо за добрые слова (да я чего то пока еще не знаю), но думаю пару лет назад ты сам задавал такие вопросы?

(23) Спасибо огромное, очень выручил, урок усвоил=)
вот так все взлетело:

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

Для каждого текСтрока Из ТЗ Цикл
    //Добавляем Закупочную
    ТЧТовары = ДокЦен.Товары.Добавить();
    ТЧТовары.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(текСтрока.НомерНоменклатуры);
    ТЧТовары.Цена = текСтрока.СуммаЗакупка;
    ТЧТовары.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СОКРЛП(текСтрока.БазоваЕденицаИзмерения), Истина);
    ТЧТовары.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Закупочная");
    ТЧТовары.ИндексСтрокиТаблицыЦен = мИндексСтрокиТаблицыЦен;
    ТЧТовары.Валюта = Справочники.Валюты.НайтиПоКоду(643, Истина);
    //Добавляем Розничную
    ТЧТовары = ДокЦен.Товары.Добавить();
    ТЧТовары.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(текСтрока.НомерНоменклатуры);
    ТЧТовары.Цена = текСтрока.СуммаРозница;
    ТЧТовары.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СОКРЛП(текСтрока.БазоваЕденицаИзмерения), Истина);
    ТЧТовары.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    ТЧТовары.ИндексСтрокиТаблицыЦен = мИндексСтрокиТаблицыЦен;
    ТЧТовары.Валюта = Справочники.Валюты.НайтиПоКоду(643, Истина);
    
    мИндексСтрокиТаблицыЦен = мИндексСтрокиТаблицыЦен + 1;
КонецЦикла;
ДокЦен.Записать(РежимЗаписиДокумента.Проведение);  // Спасибо m-serg74
28 Eugeneer
 
05.01.14
16:19
(27) а ну так понятно. если есть стремление то всегда можно все изучить.
29 Necessitudo
 
05.01.14
16:34
Маня шикарно слился с индексом типа цен)))