|
Программная установка цен номенклатуры в УТ 11 | ☑ | ||
---|---|---|---|---|
0
piffoff
21.05.12
✎
03:09
|
Задумка такова. В УТ 11
при проведении "поступлении товаров" автоматом записывались цены номенклатуры Написал примерно такой код НовыйДокументУстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НовыйДокументУстановкаЦенНоменклатуры.Дата = ТекущаяДата(); ТаблицаТовары = ЭтотОбъект.Товары; ВидЦеныНоменклатуры = Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"); Для Каждого ЭлементТаблицаТовары Из ТаблицаТовары Цикл НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(НовыйДокументУстановкаЦенНоменклатуры); НаборЗаписей.Добавить(); НаборЗаписей.Период = НовыйДокументУстановкаЦенНоменклатуры.Дата(); НаборЗаписей.ВидЦены = ВидЦеныНоменклатуры; НаборЗаписей.Номенклатура = ЭлементТаблицаТовары.Номенклатура; НаборЗаписей.Характеристика = ЭлементТаблицаТовары.Характеристика; НаборЗаписей.Цена = ЭлементТаблицаТовары.Цена; НаборЗаписей.Упаковка = ЭлементТаблицаТовары.Упаковка; НаборЗаписей.Валюта = ВидЦеныНоменклатуры.ВалютаЦены; НаборЗаписей.Записать(); КонецЦикла; выдает ошибку: {Документ.ПоступлениеТоваровУслуг.МодульОбъекта(1425)}: Поле объекта не обнаружено (Период) НаборЗаписей.Период = НовыйДокументУстановкаЦенНоменклатуры.Дата(); Как это можно исправить? |
|||
1
rphosts
21.05.12
✎
03:27
|
вынести перед циклом:
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(НовыйДокументУстановкаЦенНоменклатуры); и за цикл: НаборЗаписей.Записать(); в цикле сначала: ЗаписьНабора = НаборЗаписей.Добавить(); а вот потом у неё указываешь всякие измерения, ресурсы и т.п. и период в т.ч. |
|||
2
rphosts
21.05.12
✎
03:27
|
у неё = у ЗаписьНабора
|
|||
3
Мимохожий Однако
21.05.12
✎
07:25
|
В соглашении с поставщиком есть галка "Регистрировать цены поставщика автоматически".. (0)Свой лисапед лучше?
|
|||
4
piffoff
21.05.12
✎
22:04
|
спасибо заработало
|
|||
5
mirosh
21.05.12
✎
22:06
|
(4) :)
|
|||
6
zippygrill
21.05.12
✎
22:12
|
а как ты в регистре добавляешь записи если ТЧ нового дока пустая? что за?
|
|||
7
zippygrill
21.05.12
✎
22:13
|
оооо все понял. слишком быстро прошелся по топику :)
|
|||
8
aleks-id
21.05.12
✎
22:13
|
(6) а ему сурпрыз будет когда он документ перепроведет
|
|||
9
piffoff
21.05.12
✎
22:19
|
(3)
Чет я не совсем понял этот механизм поподробней можно про него? Да все заебок будет работать! НовыйДокументУстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НовыйДокументУстановкаЦенНоменклатуры.Дата = ТекущаяДата(); //НужныйДокумент = Документы.УстановкаЦенНоменклатуры.НайтиПоНомеру("ТР-00000001"); ТаблицаТовары = ЭтотОбъект.Товары; ВидЦеныНоменклатуры = Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"); Если ЗначениеЗаполнено(ВидЦеныНоменклатуры) И ТаблицаТовары.Количество() > 0 Тогда НовыйДокументУстановкаЦенНоменклатуры.Записать(); Для Каждого ЭлементТаблицаТовары Из ТаблицаТовары Цикл Если ЭлементТаблицаТовары.Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар Тогда НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(НовыйДокументУстановкаЦенНоменклатуры); Отбор = Новый Структура(); Отбор.Вставить("Номенклатура",ЭлементТаблицаТовары.Номенклатура); Отбор.Вставить("ВидЦены",ВидЦеныНоменклатуры); ЦеныНоменклатуры = РегистрыСведений.ЦеныНоменклатуры; ЗначенияРесурсов = ЦеныНоменклатуры.ПолучитьПоследнее(ТекущаяДата(),Отбор); ТекущаяЦена = ЗначенияРесурсов.Цена; Если ТекущаяЦена = 0 Тогда //................. Сообщить(Формат("Установлена цена для " + ЭлементТаблицаТовары + " - " + "ЧДЦ=2", ТекущаяЦена)); КонецЕсли; Если НЕ ТекущаяЦена = ЭлементТаблицаТовары.Цена Тогда ЗаписьНабора = НаборЗаписей.Добавить(); ЗаписьНабора.Период = ТекущаяДата(); ЗаписьНабора.ВидЦены = ВидЦеныНоменклатуры; ЗаписьНабора.Номенклатура = ЭлементТаблицаТовары.Номенклатура; ЗаписьНабора.Характеристика = ЭлементТаблицаТовары.Характеристика; ЗаписьНабора.Цена = ЭлементТаблицаТовары.Цена; ЗаписьНабора.Упаковка = ЭлементТаблицаТовары.Упаковка; ЗаписьНабора.Валюта = ВидЦеныНоменклатуры.ВалютаЦены; Сообщить(Формат("Изменена цена для " + ЭлементТаблицаТовары + " - " + "ЧДЦ=2", ТекущаяЦена)); КонецЕсли; КонецЕсли; КонецЦикла; НаборЗаписей.Записать(); Иначе Сообщить("Не найдена закупочная цена номенклатуры"); КонецЕсли; |
|||
10
aleks-id
21.05.12
✎
22:21
|
ню-ню
|
|||
11
piffoff
21.05.12
✎
22:23
|
не ну лучше б подсказали, что не так и в чем я глубоко заблуждаюсь
|
|||
12
piffoff
21.05.12
✎
22:24
|
а епт и правда
|
|||
13
aleks-id
21.05.12
✎
22:24
|
в том что у документа установки цен есть табличная часть которую надо заполнять.
|
|||
14
ULVIMnemoNIK
22.05.12
✎
23:25
|
У меня проблем есть. Kak mojna vse tovar cheni ustanovit odno dokument?
Для Каждого СтрСП Из Объект.ТаблицаЗначений Цикл УстановкаЦенНоменклатурыПоступ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); УстановкаЦенНоменклатурыПоступ.Согласован = Истина; УстановкаЦенНоменклатурыПоступ.Дата = ТекущаяДата(); УстановкаЦенНоменклатурыПоступ.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; УстановкаЦенНоменклатурыПоступ.Ответственный = ПараметрыСеанса.ТекущийПользователь; УстановкаЦенНоменклатурыПоступ.Записать(); Если СтрСП.Закупочная > 0 Тогда СправШтрихНомеЕсть = РегистрыСведений.ШтрихкодыНоменклатуры.Получить(новый структура("Штрихкод",СтрСП.ШтрихкодыНоменклатуры)); Если СправШтрихНомеЕсть.Номенклатура.Наименование = "" Тогда Штрихкод = Истина; Иначе Штрихкод = Ложь; КонецЕсли; Если Штрихкод = Ложь Тогда ЦеныНомен = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); ЦеныНомен.Отбор.Регистратор.Установить(УстановкаЦенНоменклатурыПоступ.Ссылка); ЗаписьНабора = ЦеныНомен.Добавить(); ЗаписьНабора.Период = ТекущаяДата(); ЗаписьНабора.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Цена поступления"); ЗаписьНабора.Номенклатура = СправШтрихНомеЕсть.Номенклатура.Ссылка; //ЗаписьНабора.Характеристика = ЭлементТаблицаТовары.Характеристика; ЗаписьНабора.Цена = СтрСП.Закупочная; //ЗаписьНабора.Упаковка = ЭлементТаблицаТовары.Упаковка; ЗаписьНабора.Валюта = Константы.ВалютаУправленческогоУчета.Получить(); ЦеныНомен.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
15
zak555
22.05.12
✎
23:29
|
> У меня проблем есть. Kak mojna...
купи букварь |
|||
16
ULVIMnemoNIK
22.05.12
✎
23:36
|
Sorry ya niznayu po russkiy))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |