Имя: Пароль:
1C
 
План обмена по Радченко. Косяк! Что делать?
0 Карамелька24
 
16.12.05
09:44
Проверяю обмен по Радченко. С использование спец. обработки для обмена, а не встроенные кнопки "Записать изменения" и "Прочитать изменения". Все нормально пока не изменится конфигурация. Эти изменения не появляются в переф. базах. Что делать?
1 Карамелька24
 
16.12.05
09:50
ПОМОГИТЕ!! Можно что-нибудь сделать или нет?
2 Карамелька24
 
16.12.05
10:01
ПОМОГИТЕ!!!!!!!!!!!
3 Карамелька24
 
16.12.05
10:53
сейчас проверяю, оказывается файл созданный типовой кнопкой больше, чем файл созданный обработкой. Предполагаю, что в обработке не указано, что нужно как то туда конфигурацию передавать. А как это указать можно?
4 Колумбарий
 
16.12.05
10:59
А как изменяется конфигурация? У меня на ранних релизах была, что при объединении конфы те объекты, которые я указал в составе плана обмена - для них прихоилось потом руками сниамт галки и опять выставлять. Только после этого 1С понимала, что они учавствуют в обмене.
5 Колумбарий
 
16.12.05
11:01
упс, сорри, это я не то сморозил.
6 Карамелька24
 
16.12.05
13:00
Ну неужели никто с распределенкой не работает??
7 Карамелька24
 
16.12.05
13:03
ап
8 Карамелька24
 
16.12.05
13:10
так не чесно :((((((
9 Волшебник
 
модератор
16.12.05
13:13
При чтении сообщения обмена, содержащего изменения конфигурации, сначала загружаются изменения конфигурации и чтение сообщения обмена прекращается. Затем требуется обновить конфигурацию БД, выгнав всех из базы. Затем нужно заново прочитать сообщение обмена.
10 Карамелька24
 
16.12.05
13:15
так это при типовом обмене. А в Радченко была сделана спец. обработка, с помощью которой совершался обмен. Я сделала обработку с подобным текстом: все хорошо, только она не реагирует на изменения конфигурации. Данные закачивает, а конфигурацию игнорирует
12 Карамелька24
 
16.12.05
13:24
Процедура ОсновныеДействияФормыЗаписать(Элемент)
   Для Каждого Узел из СписокУзлов Цикл
       Если НЕ Узел.Пометка Тогда
           Продолжить;
       КонецЕсли;
       Состояние("Думаю...");
       пСсылка=Узел.Значение;
       Сообщить("--------- Выгрузка данных в узел "+Строка(пСсылка)+" ----------");
       Каталог=СокрЛП(Путь);
       ИмяФайла=Каталог+?(Прав(Каталог, 1)="\", "", "\")+ "Message"+СокрЛП(ПланыОбмена.ПланОбмена.ЭтотУзел().Код)+"_"+СокрЛП(пСсылка.Код)+".xml";
       ИмяФайлаZip=Каталог+?(Прав(Каталог, 1)="\", "", "\")+ "Message"+СокрЛП(ПланыОбмена.ПланОбмена.ЭтотУзел().Код)+"_"+СокрЛП(пСсылка.Код)+".zip";
       ЗаписьXML=Новый ЗаписьXML;
       ЗаписьXML.ОткрытьФайл(ИмяФайла);
       ЗаписьXML.ЗаписатьОбъявлениеXML();
       ЗаписьСообщения=ПланыОбмена.СоздатьЗаписьСообщения();
       ЗаписьСообщения.НачатьЗапись(ЗаписьXML, пСсылка);
       Сообщить("   Номер сообщения: "+ЗаписьСообщения.НомерСообщения);
       ВыборкаИзменений=ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
       пНом=0;
       Пока ВыборкаИзменений.Следующий() Цикл;
           пНом=пНом+1;
           ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
           ОбработкаПрерыванияпользователя();
           Состояние("Работаю ... "+пНом+" ... "+ВыборкаИзменений.Получить());
       КонецЦикла;
       ЗаписьСообщения.ЗакончитьЗапись();
       ЗаписьXML.Закрыть();
       
       ФайлАрхива = Новый ЗаписьZipФайла(ИмяФайлаZip, , , МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный);
       ФайлАрхива.Добавить(ИмяФайла, РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
       ФайлАрхива.Записать();
       УдалитьФайлы(ИмяФайла);
       Сообщить("--------- Конец выгрузки ----------");
       ОбработкаПрерыванияпользователя();
   КонецЦикла;    
КонецПроцедуры

Процедура ОсновныеДействияФормыПрочитать(Кнопка)
   Для Каждого Узел из СписокУзлов Цикл
       Если НЕ Узел.Пометка Тогда
           Продолжить;
       КонецЕсли;
       Состояние("Думаю...");
       пСсылка=Узел.Значение;
       Каталог=СокрЛП(Путь);
       ИмяФайла=Каталог+?(Прав(Каталог, 1)="\", "", "\")+ "Message"+СокрЛП(пСсылка.Код)+"_"+СокрЛП(ПланыОбмена.ПланОбмена.ЭтотУзел().Код)+".xml";
       ИмяФайлаZip=Каталог+?(Прав(Каталог, 1)="\", "", "\")+ "Message"+СокрЛП(пСсылка.Код)+"_"+СокрЛП(ПланыОбмена.ПланОбмена.ЭтотУзел().Код)+".zip";
       
       Попытка
           ФайлАрхива = Новый ЧтениеZIPФайла(ИмяФайлаZip);
       Исключение
           Сообщить("Файл "+ИмяФайлаZip+" не найден ("+пСсылка+")");
           Продолжить;
       Конецпопытки;    
       ФайлАрхива.ИзвлечьВсе(Каталог, РежимВосстановленияПутейФайловZIP.Восстанавливать);
       ФайлАрхива.Закрыть();
       
       Файл=Новый Файл(ИмяФайла);
       Если Не Файл.Существует() Тогда
           Сообщить("Не существует файл обмена "+ИмяФайла);
           Возврат;
       КонецЕсли;
       ЧтениеXML=Новый ЧтениеXML;
       Попытка
           ЧтениеXML.ОткрытьФайл(ИмяФайла);
       Исключение
           Сообщить("Невозможно открыть файл обмена "+ИмяФайла);
           Возврат;
       КонецПопытки;
       Сообщить("--------- Загрузка данных из "+Строка(ЭтотОбъект)+" ----------");
       Сообщить("   Считывается файл "+ИмяФайла);
       ЧтениеСообщения=ПланыОбмена.СоздатьЧтениеСообщения();
       ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
       Если ЧтениеСообщения.Отправитель<>пСсылка Тогда
           ВызватьИсключение "Неверный узел";
       КонецЕсли;
       ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
       пНом=0;
       Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
           пНом=пНом+1;
           Данные=ПрочитатьXML(ЧтениеXML);
           Если Не ЧтениеСообщения.Отправитель.Главный И ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель, Данные) Тогда
               Сообщить("   изменения отклонены");
               Продолжить;
           КонецЕсли;
           Данные.ОбменДанными.Отправитель=ЧтениеСообщения.Отправитель;
           Данные.ОбменДанными.Загрузка=Истина;
           Данные.Записать();
           ОбработкаПрерыванияпользователя();
           Состояние("Работаю ... "+пНом+" ... "+Данные);
       КонецЦикла;
       ЧтениеСообщения.ЗакончитьЧтение();
       ЧтениеXML.Закрыть();
       //УдалитьФайлы(ИмяФайла);
       //УдалитьФайлы(ИмяФайлаZip);
       Сообщить("--------- Конец загрузки ----------");
       ОбработкаПрерыванияпользователя();
   КонецЦикла;    
КонецПроцедуры
13 aspirant
 
16.12.05
13:31
Вообще-то нигде в Вашем коде не нашел места обновления конфигурации, а без обновления, т.е. без приема изменение конфы - и ни туды и ни сюды?!?
14 Карамелька24
 
16.12.05
13:44
да я тоже его нигде не вижу (тоже мне новость).  просто я не знаю как он пишется
15 Карамелька24
 
16.12.05
14:06
Волшебник, ну обрати же на меня внимание
16 Карамелька24
 
16.12.05
14:32
ап
18 vvv29
 
16.12.05
14:53
Можно не выделываться а использовать стандартное, в твоем случае этого хватит:
ПланыОбмена.ПрочитатьИзменения()
ПланыОбмена.ЗаписатьИзменения()
19 Карамелька24
 
16.12.05
14:58
это вы про стандартные кнопочки что ли?
20 vvv29
 
16.12.05
15:02
(19)Нет я про стандартные процедуры
21 vvv29
 
16.12.05
15:02
(19)Почитай о них в синтаксис помошнике
22 Карамелька24
 
16.12.05
15:16
но мне нужно отфильтровать часть записей регистров сведений. Я смогу это сделать?
23 AlexanderAA
 
16.12.05
16:13
24 vvv29
 
16.12.05
16:28
(22)Смотри лучше регистрацию изменений и ПриОтправкеДанныхПодчиненному()
25 vvv29
 
16.12.05
16:29
+(24)И смотри на ИТС неплохой пример, там показаны различные способы обмена
26 Карамелька24
 
19.12.05
11:17
а можно с помощью ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);
сначала записать изменения данных и конфигурации, а потом с момощью
Выборка = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);

Пока Выборка.Следующий() Цикл

....
КонецЦикла;
Как нибудь удалить часть лишних записей??
27 Карамелька24
 
19.12.05
16:45
ПОМОГИТЕ!!!!!!!!
28 Чего
 
19.12.05
17:03
кричишь-то?
29 vvv29
 
19.12.05
18:06
(27)Не кричи тебе уже все сказали, прочти все внимательно, посмотри синтаксис помошник