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

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

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

Оффлайн 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
Просмотров: 6100
Последний ответ 11 Мар 2014, 16:09
от mashencev_anton
Номенклатуры типов "расход" и "услуга. Как использовать?

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
153 Сообщений
alex0402
117 Сообщений
Norfolk
52 Сообщений
MuI_I_Ika MuI_I_Ika
50 Сообщений
LexaK
46 Сообщений
AsadRoman
20 Сообщений
alexandr_ll
20 Сообщений
друган
20 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal