8.х Привязка контрагентов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем 1chelp, 29 янв 2016.

  1. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Добрый день! 1с начал учить недавно из языков програмирования владею пхп.
    Задача такая, в справочнике контрагенты есть реквизит Супруг с типом СправочникСсылка.Контрагенты, (текущему контрагенту привязывается Супруг), нужно сделать так чтобы при сохранение контрагента А с супругом Б, автоматом у супруга Б сохраняется супруг А.
    Сделал так:
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если НЕ ТекущийОбъект.Супруг.Пустая() Тогда
    ОбъектСупруг = ТекущийОбъект.Супруг.ПолучитьОбъект();
    ОбъектСупруг.Супруг = ТекущийОбъект.Ссылка;
    ОбъектСупруг.СоциальныйСтатус = ТекущийОбъект.СоциальныйСтатус;
    ОбъектСупруг.Заблокирован = ?(ОбъектСупруг.Логин = "" ИЛИ ОбъектСупруг.Логин = Неопределено, Истина, Ложь);
    Попытка
    ОбъектСупруг.Записать();
    Исключение
    Отказ = Истина;
    КонецПопытки;
    КонецЕсли;
    КонецПроцедуры

    Все работает, но если сделать изменения в контрагенте Б и сохранить его, потом сохранить контрагент А вылетает ошибка
    "данные были изменены или удалены другим пользователем 1с".
    Поиск в гугле по данной проблеме не дал результатов.
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Перезаписывать оба нужно будет.
  3. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ, если можно объясните более детально алгоритм, на данный момент при нажатии Записать и закрыть привязка контрагентов между собой осуществляетя, у контрагента А стоит супруг Б, у контрагента Б стоит супруг А, но если открыть контрагент А и из него попытатся изменить данные контрагента Б и записать его, потом при записать и закрыть контрагент А вылетает ошибка "данные были изменены или удалены другим пользователем 1с". Я так понимаю что при попытке сохранить контрагент А то форма не обновилась
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Давайте сначала, а то я запутался :)
    Если из А меняете в Б, то сначала записываете Б, потом А.
    Если из Б меняете в А , то сначала записываете А, потом Б
  5. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    1.А указываю что его супруг Б http://joxi.ru/ZrJYaXVh1kKOPA нажимаю записать и закрыть
    2.В Б автоматом записывается что его Супруг А http://joxi.ru/52azak1fG0pwoA - пока все отлично, так и планировалось
    3.Теперь не закрывая форму, открыть Б изменить его и записать
    4.При попытке записать А вылетает ошибка http://joxi.ru/bmozqWofMlz8er

    :) Надеюсь сейчас понятнее
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Пффф, так конечно у вас зацикливание идет. Делайте лучше через регистр сведений, желательно периодический :)
  7. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ! наверное слишком рано я взялся за такие задачи...:)

Поделиться этой страницей