Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 20:04

Сохранить изменения....

Автор Kintim, 01 фев 2012, 16:01

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

Kintim

Помогите решить вопрос..
Модуль обмена лежит во вложении

При обмене заказами с сайтом происходит следующая невиданная вещь. Выгружаю заказы с проведением и проверкой на комментарий. Если есть комментарий то ОТменаПроведения... Все отлично, документы создаются, какие нужно проводятся какие не нужно не проводятся - все классно.
Однако при проводе заказа на стороне 1С и последующей синхронизации происходит буквально чудо... Только что проведенные заказы становятся распроведенными ?!?
Однако, если мы помечаем заказ на удаление, то пометка удаления не снимается при последующих синхронизациях...
В чем фишка???

Kintim

Конфигурация 1С:Предприятие 8.2 (8.2.15.289) Ликероводочный и винный завод 1,3 !!!

Может быть стоит сделать так:

Если ДокументПроведения.Проведен = Истина Тогда
  ДокументПроведения.Записать(РежимЗаписиДокумента.Проведение, РежимПроведения);
КонецЕсли;


Однако данная проверка не срабатывает ((

Kintim

Или дело все в том, что:
РежимПроведения = ?(ПроводитьДокументыОперативно, РежимПроведенияДокумента.Оперативный, РежимПроведенияДокумента.Неоперативный);
Для Каждого ДокументПроведения Из МассивДокументовДляПроведения Цикл


Это цикл, и каждый раз при проверке на комментарий документ распроводится???

Если Найти(ДокументПроведения.Ссылка.Комментарий, ":") > 0 Тогда
   Сообщить("Есть комментарий "+ДокументПроведения);
   ДокументПроведения.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Продолжить;
КонецЕсли;


Тогда не понятно где происходит установка ПометкиУдаления??
И почему этот Цикл не трогает эту пометку ?

has

ЦитироватьТогда не понятно где происходит установка ПометкиУдаления??
В процедуре ПриЗаписи документа
ЦитироватьИ почему этот Цикл не трогает эту пометку ?
Тут не понятно, что значит не трогает?

Kintim

has
Спасибо за совет, но из доступных вариантов записи есть только:
Процедура ЗаписатьCMLПоСпискуЗначений(ОбъектCML, СписокЗначений);
Процедура ЗаписатьИнформациюВПротоколОбмена(СтруктураИнформации)
Функция ЗаписатьСвойстваДокументов(ДеревоДокументов, СтруктураСтатистики, МассивОтклоненныхДокументов)
Процедура ЗаписатьТекстовойУзел(ОбъектXML, Имя, Значение, ОбязательнаяПроверкаНаПустуюСтроку = Истина)
А как таковой процедуры записи документа нет...(

А по поводу не трогает. Я имел в виду, что при ПометкеНаУдаление в 1С-ке и последующей синхронизации с ВебСайтом, эта пометка (На удаление) не снимается в отличие от "пометки" Проведения документа.
Мне вот интересно почему?

Kintim

Я понял в чем дело!!!!
Как раз в этой проверке:

Если Найти(ДокументПроведения.Ссылка.Комментарий, ":") > 0 Тогда
   Сообщить("Есть комментарий "+ДокументПроведения);
   ДокументПроведения.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Продолжить;
КонецЕсли;

Получается что документ при повторной синхронизации проходит опять эту проверку... и Отменяется проведение...!!!
Подскажите как это можно решить??! Сам ни как не допру.... :dfbbdrfb:
Может быть нужно как-то этот документ изъять из массива МассивДокументовДляПроведения ??

Kintim

Друзья, в общем все оказалось в разы проще...
Всего лишь нужно было добавить в эту функцию:
Функция СоздатьОбновитьДокументы(ДеревоДокументов, СтруктураСтатистики, МассивДокументовДляПроведения, МассивЗагруженныхДокументов)
Вот такой вот код:
Если Док.РанееЗагруженныйДокументСсылка.Проведен Тогда
  СтруктураСтатистики.Пропущено = СтруктураСтатистики.Пропущено + 1;
  Продолжить;
КонецЕсли;

Соответственно при проведении заказа и последующем обмене галочка проведения не снимается!
Всем спасибо за поддержку )

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск