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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 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 »
наверное нет. комментарий в центральной базе не должен перезаписываться. В КД это решается удалением ПКС "Комментарий"

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

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

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

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 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
  • РЕПУТАЦИЯ: 1097
  • КПД: 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
Просмотров: 4584
Последний ответ 11 Авг 2010, 08:58
от alexkiss
Чем отличаются параметры "валидное" от "отключить" в правилах регистрации обмена

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

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

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

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

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

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

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

Ответов: 4
Просмотров: 644
Последний ответ 22 Июн 2017, 16:36
от YulaM

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
140 Сообщений
alex0402
112 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
ilyay ilyay
51 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
42 Сообщений
wise wise
40 Сообщений
ab30ru
38 Сообщений
Амал
35 Сообщений
Dethmontt Dethmontt
25 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal