Имя: Пароль:
1C
1С v8
Вопрос по регистрации изменений - ПланОбмена
0 ramir
 
07.06.14
15:07
Добрый день!

Хочу запилить обмен данными с сайтом. Прочитал в книге "Профессиональная разработка в системе "1С:Предприятие" про работу механизма плана обмена. Из всего функционала мне нужна регистрация изменений.

Указал состав плана обмена, везде стоит авторегистрация. Единственное в чем осталось разобраться как работают функции ПланыОбмена.ВыбратьИзменения() И ПланыОбмена.УдалитьРегистрациюИзменений()

Сделал специальную обработку, чтобы поиграться с этими функциями в результате имею:

ПланыОбмена.ВыбратьИзменения(Узел, НомерСообщение);

Какой бы НомерСообщения я не указывал, всегда выбираются все зарегистрированные элементы.

ПланыОбмена.УдалитьРегистрациюИзменений(Узел, НомерСообщения)

Какой бы НомерСообщения я не указывал, всегда удалются все зарегистрированные элементы.

Пробовал совместно с ВыбратьИзменения менять НомерОтправленного у Узла - результат тот же.

Как-то все это не сочетается с красивыми картинками из книжки. http://yadi.sk/d/Oh27bRWbSaWbj

Перед выгрузкой измененных объектов на сайт я выбираю их, отправляю, жду пока данные загрузятся и после подтверждения сайтом - удаляю регистрацию изменений. ПРОБЛЕМА заключается в том, что в этот промежуток времени могут быть зарегистрированы другие объекты, но после успешной отправки они будут затерты. Как быть, подскажите?
1 sda553
 
07.06.14
15:12
Выбрать изменения - выбирает все изменения и проставляет им номер какой укажешь
2 sda553
 
07.06.14
15:12
А вот удалить регистрацию, удаляет те, у кого номер меньше или равен указанному
3 sda553
 
07.06.14
15:14
сайт должен посылать ответ о том какой номер сообщения он принял, а 1с получив ответ, удаляет регистрации с этим номером и ранее. Повторно они отправляться не будут. Если опять не изменились за это время
4 ramir
 
07.06.14
15:14
Выборка = ПланыОбмена.ВыбратьИзменения(Обмен, НомерСообщения);
    
    Сообщить("---Данные---");
    
    Кол = 0;
    
    Пока Выборка.Следующий() Цикл
        Сообщить(Символы.Таб + Выборка.Получить());
        Кол = Кол + 1;
    КонецЦикла;
    
    Сообщить("---Конец сообщения №" + НомерСообщения + " количество: " + Кол);
5 ramir
 
07.06.14
15:15
Подставляю НомерСообщения 1, 2, 1, 2 и в результате одно и то же.
6 sda553
 
07.06.14
15:16
(5) и это правильно, смотри (1)
7 sda553
 
07.06.14
15:17
Попробуй выбрать изменения с номером 1, потом добавь новые изменения, потом выбери изменения с номером 2, потом удали изменения с номером 1. И ты поймешь этот процесс
8 ramir
 
07.06.14
15:19
(7) Все, разобрался. Спасибо.
Ошибка? Это не ошибка, это системная функция.