|
Программный расчет зависимых цен номенклатуры | ☑ | ||
---|---|---|---|---|
0
Nevskiy83
09.03.15
✎
14:06
|
Подскажите пожалуйста, программно создаю документ Установка цен номенклатуры. В нем есть Средняя цена поставщика, которая используется как основная, и несколько расчетных цен. Создаю документ так:
НД = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НД.Дата = НачалоДня(ТекущаяДата()); НД.Комментарий = "Созданно обработкой загрузки из Excel"; НД.Ответственный = Пользователи.ТекущийПользователь(); НД.Согласован = Истина; НД.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Средняя цена поставщика"); ДокВидЦены = НД.ВидыЦен.Добавить(); ДокВидЦены.ВидЦены = ВидЦены; ДокВидЦены.НастройкиКомпоновкиДанных.Получить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВидыЦен.Ссылка |ИЗ | Справочник.ВидыЦен КАК ВидыЦен |ГДЕ | ВидыЦен.СпособЗаданияЦены = &СпособЗаданияЦены"; Запрос.УстановитьПараметр("СпособЗаданияЦены", Перечисления.СпособыЗаданияЦен.НаценкаНаДругойВидЦен); Рез = Запрос.Выполнить(); Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл ДокВидЦены = НД.ВидыЦен.Добавить(); ДокВидЦены.ВидЦены = Выборка.Ссылка; ДокВидЦены.НастройкиКомпоновкиДанных.Получить(); КонецЦикла; Для каждого строки из Объект.Загрузка Цикл Если строки.Отметка Тогда НС = НД.Товары.Добавить(); НС.Номенклатура = строки.Номенклатура; НС.ВидЦены = ВидЦены; НС.Цена = Число(строки.ЦенаПоставщика); НД.Товары.Свернуть("Номенклатура, ВидЦены, Цена"); НС.ЦенаИзмененаВручную = Истина; КонецЕсли; КонецЦикла; НД.Записать(); Но расчетные цены не формируются, как их рассчитать? Спасибо. |
|||
1
Nevskiy83
09.03.15
✎
14:47
|
Забыл указать Конфигурация УТ 11.1
|
|||
2
Nevskiy83
10.03.15
✎
08:58
|
Делаю как в типовой конфе. В модуле формы документа УстановкаЦенНоменколатуры
&НаСервере Функция РассчитатьЦеныНаСервере(ПараметрыРасчета) Возврат УстановкаЦенСервер.РассчитатьЦены(ЭтаФорма, ПараметрыРасчета); КонецФункции &НаКлиенте Процедура РассчитатьЗавершение(Результат, ДополнительныеПараметры) Экспорт ПараметрыРасчета = Результат; Если ПараметрыРасчета <> Неопределено Тогда ОчиститьСообщения(); РассчитатьЦеныНаСервере(ПараметрыРасчета); КонецЕсли; КонецПроцедуры Я в обработке получаю форму созданного документа и пытаюсь ее передать в процедуру РссчитатьЦены, на что получаю ошибку Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. &НаКлиенте Процедура СоздатьДокументы(Команда) Документ = СоздатьДокументУстановкиЦенНоменклатуры(); ПараметрыРасчета = Новый Структура; ПараметрыРасчета.Вставить("ВидыЦен", ПолучитьВидыЦен()); ПараметрыРасчета.Вставить("ТолькоВыделенныеСтроки", Ложь); ПараметрыРасчета.Вставить("ЗагрузкаСтарыхЦен", Ложь); ПараметрыРасчета.Вставить("ТолькоНезаполненные", Ложь); ПараметрыРасчета.Вставить("ОкруглениеРучныхЦен", Ложь); РассчитатьЦеныНаСервере(Документ, ПараметрыРасчета); Документ.записать(); КонецПроцедуры &НаСервере Процедура РассчитатьЦеныНаСервере(Документ, ПараметрыРасчета) Параметр = Новый Структура("Ключ", Документ); мФорма = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента",Параметр); УстановкаЦенСервер.РассчитатьЦены(мФорма, ПараметрыРасчета); КонецПроцедуры Можно как-нибудь решить эту проблему? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |