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

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

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

Оффлайн Nevskiy83

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

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

Спасибо.


Оффлайн Nevskiy83

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

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

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

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

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

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

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

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

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

Оффлайн vitasw

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

Оффлайн Nevskiy83

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

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

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

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

Оффлайн vitasw

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

Оффлайн usa223

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
116 Сообщений
alex0402
102 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
72 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
49 Сообщений
ilyay ilyay
49 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal