Имя: Пароль:
1C
1С v8
Обмен не РИБ! Как сравнить реквизит документа источника и текущим объектом в этом узле?
0 Обработка
 
14.09.21
07:58
В старом УТ2 (аналог УТ10)... есть обмен не-РИБ-овская.
Документ (самописный) с авторегистрацией бегают по обмену туда сюда.
У документа есть реквизит "Статус" 6-7 значений типа справочник.
Как при обмене сравнив этот реквизит принимать или отказывать в приеме?
1 Mankubus
 
14.09.21
08:01

Если Объект.Статус = Объект.Ссылка Статус ТОГДА
Отказ = Истина;
КонецЕсли;
2 Василий Алибабаевич
 
14.09.21
08:08
(0) В модуле объекта в обработчике ПриЗаписи. Запись в РИБ определяется значением реквизита Объекта "Загрузка". При обмене оно устанавливается в Истина.

ЗЫ. Но идея очень хреновая. Поскольку порядок объектов ничем не гарантируется можно напороться на запись, например, подчиненных элементов справочника когда Владелец еще не записан. И по логике ТС записан вообще не будет. Так же будут записаны наборы регистров... А регистратор при записи получит отлуп. В общем нужно что-то в консерватории менять.
3 Обработка
 
14.09.21
08:11
(1) Скрее всего может так?
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
    
      ........
     Если ЭлементДанных.Статус = ЭлементДанных.Ссылка.Статус  Статус ТОГДА

          //Отказ тут не подойдет . Нужно команда игнорирования...
     КонецЕсли;
КонецПроцедуры
4 Обработка
 
14.09.21
08:36
Кстати если не риб то работает ПриПолученииДанныхОтГлавного и ПриПолученииДанныхОтПодчиненного ???
5 hhhh
 
14.09.21
08:50
(4) не, главный это ведь только у риб. у не-РИБ нет главных.
6 Василий Алибабаевич
 
14.09.21
08:54
(5) "у не-РИБ нет главных." На самом деле есть.
7 Обработка
 
14.09.21
09:50
Вместе с доком еще РС мигрирует со статусами.
И обмен каждые 5 мин.
Странно что срез последних РС не совпадает с реквизитом документа.
В общем тут надо копать и копать
8 Василий Алибабаевич
 
14.09.21
09:51
(7) Срез не передается. Передается набор записей.
9 Обработка
 
14.09.21
09:54
(8) Конечно же да. Но в базе на текущий момент запустил сравнение и увидел кучу не совпадений.

ВЫБРАТЬ
    ИсторияИзмененияСтатусовЗаказаСрезПоследних.Период КАК Период,
    ИсторияИзмененияСтатусовЗаказаСрезПоследних.ЗаказПокупателя КАК ЗаказПокупателя,
    ИсторияИзмененияСтатусовЗаказаСрезПоследних.Ответственный,
    ИсторияИзмененияСтатусовЗаказаСрезПоследних.СтатусЗаказа,
    ЗаказНаПеремещение.Ссылка,
    ЗаказНаПеремещение.Статус
ИЗ
    РегистрСведений.ИсторияИзмененияСтатусовЗаказа.СрезПоследних КАК ИсторияИзмененияСтатусовЗаказаСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение
        ПО ИсторияИзмененияСтатусовЗаказаСрезПоследних.ЗаказПокупателя = ЗаказНаПеремещение.Ссылка
ГДЕ
    ИсторияИзмененияСтатусовЗаказаСрезПоследних.Период > &Период
    И ЗаказНаПеремещение.Статус <> ИсторияИзмененияСтатусовЗаказаСрезПоследних.СтатусЗаказа
    И ЗаказНаПеремещение.Дата > &Период

УПОРЯДОЧИТЬ ПО
    Период,
    ЗаказПокупателя
10 Василий Алибабаевич
 
14.09.21
10:08
(9) Не понял смысла запроса. Но это уже никак не связано с процессом обменами. Если есть артефакты - смотреть логику выборки и записи передаваемых объектов.
11 Обработка
 
14.09.21
10:15
(10)  ДА конечно это с обменом не связано. Я просто пока пытаюсь анализировать почему так происходит.
Идет ли перезапись при обмене итп.

Эврика! Но пришла идея! Могу ведь по срезу последних делать изменения даже без обмена!
Тем более не срез передается в сам набор а набор это актульный статус!
12 Serg_1960
 
14.09.21
10:23
Имхо, если это не РИБ-обмен, то - универсальный обмен - в правилах конвертации надо ловить Ваши статусы :)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn