|
v7: Заполнение реквизитов подчиненного справочника |
☑ |
0
Aldnepr
13.09.19
✎
09:14
|
Здравствуйте.Клепаю обработку для занесения цен выбранного типа из Ексель. Суть- если нет нужной категории цен то создать и заполнить, а если есть- заменить значение у существующей. Так вот новую создает и заполняет, а существующую не меняет.
Товар=СоздатьОбъект("Справочник.Номенклатура");
СпрЦен=СоздатьОбъект("Справочник.Цены");
Т1=Прав((Строка(Excel.Cells(ТекСТрока, СтлбКод).Value)),5);
Т2="0000"+Т1;
ХХ=Прав(Т2,5);
Товар.НайтиПоКоду(ХХ,0);
ТМЦ=Товар.ТекущийЭлемент();
ТМЦ.ИспользоватьДату(ТекущаяДата());
ЦенаХЛ=Окр(Число(СокрЛП(Строка(Excel.Cells(ТекСТрока, СтлбЦена_Розн).Value))),2,1);
ВвестиКодНаименование(ТМЦ, ТекСтрока, Excel);
Если ЦенаХЛ>0 тогда
СпрЦен.ИспользоватьВладельца(ТМЦ);
СпрЦен.ИспользоватьДату(ТекущаяДата());
Сообщить(ТМЦ.Код+" "+ТМЦ);
ЕстьВыборка=СпрЦен.ВыбратьЭлементы();
Если ЕстьВыборка=0 тогда //создаем новый
СпрЦен.Новый();
СпрЦен.Валюта=Константа.БазоваяВалюта;
СпрЦен.Единица=ТМЦ.ЕдиницаПоУмолчанию;
СпрЦен.КатегорияЦены=Спис;
СпрЦен.Цена=ЦенаХЛ;
СпрЦен.Записать();
ИначеЕсли ЕстьВыборка=1 тогда //меняем просто значение цены на текущую дату
СпрЦен.Цена=ЦенаХЛ;
СпрЦен.Записать();
КонецЕсли;
КонецЕсли;
|
|
1
ДенисЧ
13.09.19
✎
09:16
|
ИначеЕсли ЕстьВыборка=1 тогда //меняем просто значение цены на текущую дату
об = спрЦен.ПолучитьОбъект();
об.Цена=ЦенаХЛ;
об.Записать();
|
|
2
Василий Алибабаевич
13.09.19
✎
09:17
|
(0) ГЫ. Выборку открыл, но не выбрал ни одной записи.
СпрЦен.ВыбратьЭлементы();
....
Пока СпрЦен.ПолучитьЭлемент() =1 Цикл
...
(1) Это клюшки
|
|
3
Василий Алибабаевич
13.09.19
✎
09:19
|
(2) И вообще.
Если СпрЦен.ВыбратьЭлементы() = 0 Тогда
...
Иначе
Пока СпрЦен.ПолучитьЭлемент() = 1 Цикл
...
КонецЦикла;
КонецЕсли;
|
|
4
dedmoroz777
13.09.19
✎
09:21
|
И проверки на ТипЦен нигде нет
|
|
5
Aldnepr
13.09.19
✎
09:38
|
(2) Спасибо.Зарапортовался точно,и забыл про клюшки, а Вам плюшек сегодня хороших)
|
|
6
Злопчинский
13.09.19
✎
12:52
|
Вообще-то в типовой ТиС загрузка цен номенклатуры есть штатно.
что-там клепать-то?
единственное что я туда "доклепал" (пару операторов) - синхронизация по артикулу.
вот картинка этой штатной обработки
|
|
7
johnnik
13.09.19
✎
13:25
|
(0)
СпрЦен.Цена=ЦенаХЛ;
........
Эээ, если речь про ТиС, то реквизит "Цена" вроде периодический, там надо:
СпрЦен.Цена.Установить(ТекущаяДата(), ЦенаХЛ)
Или речь не о типовой ТиС?
|
|
8
dedmoroz777
13.09.19
✎
14:05
|
(7) там есть: СпрЦен.ИспользоватьДату(ТекущаяДата());
|
|
9
Злопчинский
13.09.19
✎
16:35
|
(7) ну, с учетом
ТМЦ.ЕдиницаПоУмолчанию
- там адский трэш
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой