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

Автор Тема: ПЛАНЫ ОБМЕНА  (Прочитано 545 раз)

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

Оффлайн Гайдар

  • *
  • Сообщений: 45
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2011-09-16
  • Сайт: 
  • Профессия: Ученик 1С

ЗДРАВСТВУЙТЕ!

Как сохранить значение реквизита "Комментарий" документа Реализация в основной базе при чтении нового сообщения ? процедуры ниже

Процедура ЗаписатьСообщениеСИзменениями() Экспорт
   
   Сообщить("-------- Выгрузка в узел " + Строка(ЭтотОбъект) + " ------------");
   Каталог = "\\COMP\DATA\";

   ИмяФайла = Каталог + "Message4" +
            СокрЛП(ПланыОбмена.УдаленныеОфисы4.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";
   
   // Создаем объект записи XML
   ЗаписьXML = Новый ЗаписьXML;
   ЗаписьXML.ОткрытьФайл(ИмяФайла);
   ЗаписьXML.ЗаписатьОбъявлениеXML();
   
   // Создаем новое сообщение
   ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
   ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
   Сообщить("    Номер сообщения: " + ЗаписьСообщения.НомерСообщения);
   
   // Получаем выборку изменённых данных
   ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
   Дата = НачалоДня(ТекущаяДата()- 86400*30);
    Получатель = сокрлп(записьсообщения.Получатель);
       Пока ВыборкаИзменений.Следующий() Цикл
      Попытка   
      Если ВыборкаИзменений.Получить().Проведен = ложь Тогда
         Продолжить;
      КонецЕсли;

      Если ВыборкаИзменений.Получить().Дата < Дата Тогда
         Продолжить;
      КонецЕсли;
   исключение
      конецпопытки;
      // Записываем данные в сообщение
      ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
      
   КонецЦикла;
   
   // Завершаем запись сообщения
   ЗаписьСообщения.ЗакончитьЗапись();
   ЗаписьXML.Закрыть();
   
   Сообщить("-------- Конец выгрузки------------");
КонецПроцедуры // ЗаписатьСообщениеСИзменениями()


Процедура ПрочитатьСообщениеСИзменениями() Экспорт
   
   Каталог = "\\COMP\DATA\";
   
   ИмяАрхива = "Message4" +
           СокрЛП(Ссылка.Код) + "_" + СокрЛП(ПланыОбмена.УдаленныеОфисы4.ЭтотУзел().Код)  + ".zip";
   Попытка
      Архив = Новый ЧтениеZIPФайла(Каталог + ИмяАрхива);
      Архив.ИзвлечьВсе(Каталог);
      Архив.Закрыть();
   Исключение
   КонецПопытки;
   
   ИмяФайла = Каталог + "Message4" +
            СокрЛП(Ссылка.Код) + "_" + СокрЛП(ПланыОбмена.УдаленныеОфисы4.ЭтотУзел().Код) + ".xml";
   
   //Файл = Новый Файл(ИмяФайла);
   //Если Не Файл.Существует() Тогда
   //   
   //   Возврат;
   //   
   //КонецЕсли;   
   
   // Производим попытку открытия файла
   ЧтениеXML = Новый ЧтениеXML;
   Попытка
      
      ЧтениеXML.ОткрытьФайл(ИмяФайла);
      
   

      
   Исключение
      
      Возврат;
      
   КонецПопытки;
   
   Сообщить("-------- Загрузка из " + Строка(ЭтотОбъект) + "------------");
   Сообщить(" - Считывается файл " + ИмяФайла);
   
   // Загрузка из найденного файла
   ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
   
      ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
   
   Если ЧтениеСообщения.Отправитель <> Ссылка Тогда
      
      // Сообщение предназначено не для этого узла
      ВызватьИсключение "Неверный узел";
      
   КонецЕсли;
   
   // Удаляем регистрацию изменений для узла отправителя сообщения
   ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
   
   // Читаем данные из сообщения
   Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
      
            
   
      // Читаем очередное значение
      Данные = ПрочитатьXML(ЧтениеXML);
      
      
      
      
      // Не переносим изменение полученное в главный из неглавного если есть регистрация изменения
      Если Не ЧтениеСообщения.Отправитель.Главный
         И ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель, Данные) Тогда
         
         Сообщить("- Изменения отклонены:");
         Продолжить;
         
      КонецЕсли;
      
            
      // Записываем перенесенные данные
      Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
      Данные.ОбменДанными.Загрузка = Истина;
      Данные.Записать();
      
   КонецЦикла;
   
   ЧтениеСообщения.ЗакончитьЧтение();
   ЧтениеXML.Закрыть();

   
   УдалитьФайлы(ИмяФайла);
   УдалитьФайлы(Каталог + ИмяАрхива);
   
   Файл = Новый ТекстовыйДокумент;

   Файл.Прочитать("F:\Обмен\Выгрузки.txt");
   Файл.ДобавитьСтроку(Строка(ТекущаяДата()) + " " + Сред(ИмяФайла, Число(СтрДлина(Каталог))+1));
   Файл.Записать("F:\Обмен\Выгрузки.txt");

   
   Сообщить("-------- Конец загрузки------------");
   


   
КонецПроцедуры // ПрочитатьСообщениеСИзменениями()






Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #1: 08 Авг 2016, 11:08 »
ну так у вас объект целиком переносится, и реквизит "Комментарий" - в том числе.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Гайдар

  • *
  • Сообщений: 45
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2011-09-16
  • Сайт: 
  • Профессия: Ученик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #2: 08 Авг 2016, 11:12 »
а как делать без комментария?
Добавлено: 08 Авг 2016, 11:12

ну так у вас объект целиком переносится, и реквизит "Комментарий" - в том числе.
а как делать без комментария?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #3: 08 Авг 2016, 11:14 »
а хотя бы и...

Данные.ОбменДанными.Загрузка = Истина;
Данные.Комментарий = "";
Данные.Записать();
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Гайдар

  • *
  • Сообщений: 45
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2011-09-16
  • Сайт: 
  • Профессия: Ученик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #4: 08 Авг 2016, 11:23 »
а хотя бы и...

Данные.ОбменДанными.Загрузка = Истина;
Данные.Комментарий = "";
Данные.Записать();
Так комментарий очистится?  а комментарий в основной базе не пустой , нужно сохранить его как в основной (в основной комментарий меняется вручную

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #5: 08 Авг 2016, 11:41 »
то есть вы перенесли, поменяли комментарий в приемнике и потом снова этот документ переносите и должен остаться измененный комментарий?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #6: 08 Авг 2016, 11:45 »
наверное нет. комментарий в центральной базе не должен перезаписываться. В КД это решается удалением ПКС "Комментарий"

Оффлайн Гайдар

  • *
  • Сообщений: 45
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2011-09-16
  • Сайт: 
  • Профессия: Ученик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #7: 08 Авг 2016, 11:55 »
наверное нет. комментарий в центральной базе не должен перезаписываться. В КД это решается удалением ПКС "Комментарий"
ошибку выдал {ПланОбмена.УдаленныеОфисы4.МодульОбъекта(152)}: Поле объекта не обнаружено (Комментарий)
      Данные.Комментарий = "";

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #8: 08 Авг 2016, 12:16 »
наверное нет. комментарий в центральной базе не должен перезаписываться. В КД это решается удалением ПКС "Комментарий"
ошибку выдал {ПланОбмена.УдаленныеОфисы4.МодульОбъекта(152)}: Поле объекта не обнаружено (Комментарий)
      Данные.Комментарий = "";


естественно надо проверить, есть ли такой реквизит или нет...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: ПЛАНЫ ОБМЕНА
« Ответ #9: 08 Авг 2016, 12:19 »
наверное нет. комментарий в центральной базе не должен перезаписываться. В КД это решается удалением ПКС "Комментарий"

у него обмен с использованием плана обмена и сериализации через XML.
в этом случае объект переносится целиком.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Во время обмена выпадает ошибка: "При подписке на событие произошла ошибка."

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

Ответов: 0
Просмотров: 4355
Последний ответ 11 Авг 2010, 08:58
от alexkiss
Чем отличаются параметры "валидное" от "отключить" в правилах регистрации обмена

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

Ответов: 3
Просмотров: 2778
Последний ответ 12 Мар 2012, 20:39
от Bulat-IT
Управление торговлей и управление складом. Проблемы обмена данными.

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

Ответов: 2
Просмотров: 2599
Последний ответ 12 Мар 2013, 12:54
от Slin
Обмен данными. Правила обмена данными. Проблемы с повторной выгрузкой.

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

Ответов: 4
Просмотров: 4481
Последний ответ 02 Авг 2011, 18:29
от 1cdp
Кто-нибудь хочет на курсы 1С "Средства интеграции и обмена данными"?

Автор SandiРаздел Поиск единомышленников

Ответов: 2
Просмотров: 131
Последний ответ 23 Мар 2017, 22:30
от Sandi

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

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

* Кто онлайн

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

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

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

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

Поиск

 

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