8.х УТ Загрузка цен номенклатуры

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем bajiepka, 25 май 2015.

  1. TopicStarter Overlay
    bajiepka
    Offline

    bajiepka Опытный в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    328
    Симпатии:
    22
    Баллы:
    29
    Подмогните пожалуйста с обработкой. Ума не приложу, что написал не так.
    УТ 11. Обрабокта загружает номенклатуру из файла excel и одновременно создает документ установки цен с этой номенклатурой. Ситуация банальна. При запуске обработки с добавлением номенклатуры проблем нет. Документ установки цен создается не проведенный (по ТЗ), но цены записываются в регистр сведений ЦеныНоменклатуры. При ручном проведении этого документа все записанные непроведенным документом цены из него удаляются.
    Если у кого-то есть торговля под рукой - посмотрите пожалуйста, где я мог накосячить. Обработка и пробный прайс во вложении

    Вложения:

  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    скорее всего неправильно создаёте док установки цен
  3. temrmal
    Offline

    temrmal

    Регистрация:
    13 фев 2007
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Во первых:
    Создаете документ на сервере, записываете, а потом добавляете виды цен. Потом уже не записываете. Возврат идет на клиента опять

    Во вторых:
    Попытка
    Документ.Движения.ЦеныНоменклатуры.Прочитать();
    Документ.Движения.ЦеныНоменклатуры.Записать(Истина);
    Документ.Записать(РежимЗаписиДокумента.Запись);
    Исключение
    Сообщить("Возникла какая-то ошибка");
    КонецПопытки;

    Если НЕ ПустаяСтрока(Данные[3]) Тогда
    НовоеДвижение = Документ.Движения.ЦеныНоменклатуры.Добавить();
    НовоеДвижение.Регистратор = Стр.ДокументУстановкиЦен.Ссылка;
    НовоеДвижение.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Данные[0]);
    НовоеДвижение.Период = Стр.Дата;
    НовоеДвижение.ВидЦены = Стр.ТипОптовойЦены;
    НовоеДвижение.Цена = Число(СтрЗаменить(СтрЗаменить(СокрЛП(Данные[3]), " ", ""), ".", ","));
    НовоеДвижение.Валюта = Константы.ВалютаРегламентированногоУчета.Получить();
    КонецЕсли;

    Вот это все зачем???.Запишите простым способом "Документ.Записать(РежимЗаписиДокумента.Запись);" По регистру уже при проведении пройдет.

    И в третьих, слишком много гоняете данные с клиента на сервер и обратно и опять на сервер. Подготовьте данные для сервера, и передайте 1 раз, а там уже выполняйте все необходимые серверные процедуры, с возвратом только при окончании
  4. TopicStarter Overlay
    bajiepka
    Offline

    bajiepka Опытный в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    328
    Симпатии:
    22
    Баллы:
    29
    Спасибо, согласен со всеми замечаниями. В 1 и 2 случаях "перебдел", а вот подскажите пожалуйста по поводу 3, если мне надо на клиенте выводить информацию о текущем состоянии обработки данных, то мне надо как-то возвращать на клиент данные, причем не пару строк. Насколько я понимаю, структуры на клиенте вобще быть как бы не должно. а оповещать форму на клиенте из серверной процедуры тоже как-то не правильно. Как в таких случаях строится клиент-серверное взаимодействие, может у Вас есть какой-то пример? Если да, то киньте пожалуйста ссылкой...

Поделиться этой страницей