Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 07:45
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Программный расчет зависимых цен номенклатуры  (Прочитано 2171 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nevskiy83

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-02
  • Сайт: 
  • Профессия: Программист 1С
Подскажите пожалуйста, программно создаю документ Установка цен номенклатуры. В нем есть Средняя цена поставщика, которая используется как основная, и несколько расчетных цен. Создаю документ так:

НД = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    НД.Дата = НачалоДня(ТекущаяДата());
    НД.Комментарий = "Созданно обработкой загрузки из Excel";
    НД.Ответственный = Пользователи.ТекущийПользователь();
    НД.Согласован = Истина;
    НД.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
   
    ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Средняя цена поставщика");
    ДокВидЦены = НД.ВидыЦен.Добавить();
    ДокВидЦены.ВидЦены = ВидЦены;
    ДокВидЦены.НастройкиКомпоновкиДанных.Получить();
   
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВидыЦен.Ссылка
                   |ИЗ
                   |    Справочник.ВидыЦен КАК ВидыЦен
                   |ГДЕ
                   |    ВидыЦен.СпособЗаданияЦены = &СпособЗаданияЦены";
                   
    Запрос.УстановитьПараметр("СпособЗаданияЦены", Перечисления.СпособыЗаданияЦен.НаценкаНаДругойВидЦен);
   
    Рез = Запрос.Выполнить();
    Выборка = Рез.Выбрать();
   
    Пока Выборка.Следующий() Цикл
        ДокВидЦены = НД.ВидыЦен.Добавить();
        ДокВидЦены.ВидЦены = Выборка.Ссылка;
        ДокВидЦены.НастройкиКомпоновкиДанных.Получить();
    КонецЦикла;
       
    Для каждого строки из Объект.Загрузка Цикл
        Если строки.Отметка  Тогда
            НС = НД.Товары.Добавить();
            НС.Номенклатура = строки.Номенклатура;
            НС.ВидЦены = ВидЦены;
            НС.Цена = Число(строки.ЦенаПоставщика);
            НД.Товары.Свернуть("Номенклатура, ВидЦены, Цена");
            НС.ЦенаИзмененаВручную = Истина;
        КонецЕсли;
    КонецЦикла;
    НД.Записать();
Но расчетные цены не формируются, как их рассчитать?

Спасибо.


Оффлайн Nevskiy83

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-02
  • Сайт: 
  • Профессия: Программист 1С
Делаю как в типовой конфе. В модуле формы документа УстановкаЦенНоменколатуры есть такой код.

&НаСервере
Функция РассчитатьЦеныНаСервере(ПараметрыРасчета)
    Возврат УстановкаЦенСервер.РассчитатьЦены(ЭтаФорма, ПараметрыРасчета);
КонецФункции

&НаКлиенте
Процедура РассчитатьЗавершение(Результат, ДополнительныеПараметры) Экспорт
   
    ПараметрыРасчета = Результат;
    Если ПараметрыРасчета <> Неопределено Тогда
       
        ОчиститьСообщения();
        РассчитатьЦеныНаСервере(ПараметрыРасчета);
       
    КонецЕсли;

КонецПроцедуры

Я во внешней обработке получаю форму созданного документа и пытаюсь ее передать в процедуру РссчитатьЦены, на что получаю ошибку Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.

&НаКлиенте
Процедура СоздатьДокументы(Команда)
    Документ = СоздатьДокументУстановкиЦенНоменклатуры();   
    ПараметрыРасчета = Новый Структура;
    ПараметрыРасчета.Вставить("ВидыЦен", ПолучитьВидыЦен());
    ПараметрыРасчета.Вставить("ТолькоВыделенныеСтроки", Ложь);
    ПараметрыРасчета.Вставить("ЗагрузкаСтарыхЦен", Ложь);
    ПараметрыРасчета.Вставить("ТолькоНезаполненные", Ложь);
    ПараметрыРасчета.Вставить("ОкруглениеРучныхЦен", Ложь);
   
    РассчитатьЦеныНаСервере(Документ, ПараметрыРасчета);
   
    Документ.записать();
       
КонецПроцедуры

&НаСервере
Процедура РассчитатьЦеныНаСервере(Документ, ПараметрыРасчета)
   
    Параметр = Новый Структура("Ключ", Документ);
    мФорма = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента",Параметр);

    УстановкаЦенСервер.РассчитатьЦены(мФорма, ПараметрыРасчета);
КонецПроцедуры

Можно как-нибудь решить эту проблему?

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Документ-объект должен присутствовать только на сервере. Зачем вы его с сервера гоняете на клиент а затем снова на сервер?

Оффлайн Nevskiy83

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-02
  • Сайт: 
  • Профессия: Программист 1С
Я хотел использовать типовой механизм пересчета цены. В итоге сделал по другому. Вызвал типовую экспортную функцию из модуля формы.

	Параметр = Новый Структура("Ключ", Документ);
мФорма = ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента",Параметр);

мФорма.РассчитатьЗавершение(ПараметрыРасчета, Ложь);

Единственное, теперь не понимаю как сохранить эти изменения в документе?

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
РеквизитФормыВЗначение

Оффлайн usa223

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-25
  • Сайт: 
  • Профессия: Программист 1С
Подскажите, в итоге удалось решить эту проблему?
У меня точно такая же задача (пересчёт зависимых цен при создании документа УстановкаЦенНоменклатуры), но пока решить не получается.


Теги:
 

"фильтрация" номенклатуры

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 12
Просмотров: 7960
Последний ответ 11 Мар 2014, 16:09
от mashencev_anton
Номенклатуры типов "расход" и "услуга. Как использовать?

Автор joyerРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 2674
Последний ответ 29 Июн 2011, 21:11
от joyer
Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4293
Последний ответ 24 Дек 2015, 15:34
от дфтын
Не отображаются "Свойства номенклатуры" куда тыкнуть?

Автор limrikРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3213
Последний ответ 16 Янв 2012, 18:25
от limrik
1C УТ 8.3 релиз 11.1.7.49, проблема Номенклатуры с типом "Набор"

Автор cotevichРаздел Беседка

Ответов: 0
Просмотров: 2509
Последний ответ 22 Авг 2014, 10:33
от cotevich

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
176 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
alex0402
44 Сообщений
AIFrame
41 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 338
  • Точка Скрытых: 0
  • Точка Пользователей: 13
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal