Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запись связанных объектов при проведении док-та          
kserg2012 Подменю пользователя
сообщение 30.11.22, 11:11
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 98
Спасибо сказали: 14 раз
Рейтинг: 14.3

"Управление производственным предприятием для Украины", редакция 1.2.6.7 (обычные формы)
работает на платформе 8.3.15.1778

Добрый день
Нужен совет в понимании какой подход выбрать для решения задачи - запись связанных с документом объектов.

Имеется самописный документ, при "ручном" проведении которого необходимо вместе с движением док-та внести изменения
в два связанных объекта - это 2 разных справочника.

Проведение осуществляется в ручном режиме Пользователем
(т.е. вызов из формы документа, при групповом проведении данный алгоритм не используется)

Требование: движения док-та и запись этих справочников должны быть синхронизированы,
т.е. если при записи объекта-справочника возникает ошибка (например справочник заблокирован),
то вся операция проведения док-та "отменятеся" и пользователю выдается описание ошибки.

Напрашивается решение - использование блока НачатьТранзакцию-ЗафиксироватьТранзакцию
но мне не понятно как это будет работать в процедуре ОбработкаПроведения

Подскажите пожалуйста, как лучше поступить в данном случае?

Vofka Подменю пользователя
сообщение 30.11.22, 11:42
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

ОбработкаПроведения вызывается внутри транзакции, т.е. вам ее явно открывать там не надо.
Изменение справочников при проведении документа - идея не самая хорошая. Потенциально может быть не очень просто держать это все в синхронизированном состоянии.

kserg2012 Подменю пользователя
сообщение 30.11.22, 12:05
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 98
Спасибо сказали: 14 раз
Рейтинг: 14.3

Vofka @ Сегодня, 11:42 * ,
согласен, вот почему и хотелось бы услышать мнение бывалых wink.gif

на моем примере - вижу, что "иногда" пользователи вносят ошибочно док-т, и за этим следует его распроведение и удаление
и если это документ так сказать относительно "свежий", то по факту надо и связанные объекты-справочники откатывать

Цитата(Vofka @ 30.11.22, 11:42) *
Изменение справочников при проведении документа - идея не самая хорошая


основной проблемой я вижу тот момент, что СправочникОбъект может заблокирован в момент проведения другим пользователем
а что если такой подход при проведении?

    Попытка
        СправочникОбъект().Заблокировать();
    Исключение
           Отказ = Истина;
           Сообщить("Ошибка при записи справочника, возможно он заблокирован");
           Возврат;
    КонецПопытки;

         СправочникОбъект.Разблокировать();
         СправочникОбъект.Записать();

Vofka Подменю пользователя
сообщение 30.11.22, 13:39
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(kserg2012 @ 30.11.22, 12:05) *
и если это документ так сказать относительно "свежий", то по факту надо и связанные объекты-справочники откатывать

Это только один из нескольких моментов, которые могут быть. Все конечно можно порешать и сделать так, чтобы оно плюс/минус нормально работало, но я бы попробовал что-то придумать, чтобы не ввязываться с изменением справочника. Хотя я и сам такое делал. Но сейчас я бы такое делал имея очень веские причины на то.

Цитата(kserg2012 @ 30.11.22, 12:05) *
основной проблемой я вижу тот момент, что СправочникОбъект может заблокирован в момент проведения другим пользователем

В этом случае по идее документ не проведется и выдаст ошибку. По-моему это нормальный вариант. Ненормально тут только может то, что вы ожидаете, что справочник может быть заблокирован. Он же вроде не блокируется, если просто открываетс форма (или блокируется)? Т.е. в вашем варианте, как я понял, нормально, что справочник будет меняться из документа и ещё откуда-то. Если так, то это хороший индикатор того, что вы что-то не так проектируете.

Сообщение отредактировал Vofka - 30.11.22, 13:40

kserg2012 Подменю пользователя
сообщение 30.11.22, 14:01
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 98
Спасибо сказали: 14 раз
Рейтинг: 14.3

Цитата(Vofka @ 30.11.22, 13:39) *
что вы ожидаете, что справочник может быть заблокирован

да, есть над чем подумать
но этот справочник - ДоговорыКонтрагентов - можно сказать один из ключевых справочников в этой управленческой базе
и вполне допускаю, что одновременно другой пользователь откроет его для просмотра или редактирования

Vofka Подменю пользователя
сообщение 30.11.22, 14:25
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

А зачем вы его меняете при проведении документа? Если надо что-то "прицепить" к элементу справочника при проведении документа, я бы сделал периодический, подчиненный регистратору РегистрСведений с измерением МойСправочник и писал бы туда что надо.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 9:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!