Изменение документа без перепроведения. Когда это нужно и как это сделать?

Иногда возникает необходимость внести незначительные изменения в уже проведенный документ. "Незначительные" в данном контексте означает такие изменения, которые не влияют на движения регистров (и вообще на любые процедуры, выполняемые в процессе проведения документа). Самым простым примером может служить изменение поля "Комментарий".

автор статьи: Фёдор Езеев
опубликовано: февраль 2003

источник: http://hare.ru/

Иногда возникает необходимость внести незначительные изменения в уже проведенный документ. "Незначительные" в данном контексте означает такие изменения, которые не влияют на движения регистров (и вообще на любые процедуры, выполняемые в процессе проведения документа). Самым простым примером может служить изменение поля "Комментарий".

Однако движку V7 абсолютно безразлично, влияют ли внесённые в документ изменения на состояние регистров, или нет. Если документ был изменен – его надо перепровести. Ну а где проведение задним числом, там и восстановление границы последовательности, и прочие маленькие радости администраторов баз данных V7.

В статье описан технический прием, позволяющий обойти обозначенную проблему.

Для решения, очевидно, нужно использовать методы ПриЗаписиПерепроводить() и Записать(). Пробуем сделать по-простому: на элемент формы "Комментарий" вешаем функцию ПриВводеКомментария(), в которой написано следующее:

Процедура ПриВводеКомментария()

   ПриЗаписиПерепроводить(0);
   Записать();
   ПриЗаписиПерепроводить(1);

КонецПроцедуры

Так же нужно не забыть проверить состояние документа перед изменением нашего поля. Если документ уже был изменен – очевидно, записывать его без перепроведения было бы некорректно. Это тоже просто:

Процедура ПриВводеКомментария()

   НужноПерепроводить=?(Модифицированность()=0,0,1);

   Если НужноПерепроводить=0 Тогда
      ПриЗаписиПерепроводить(0);
      Записать();
      ПриЗаписиПерепроводить(1);
   КонецЕсли;

КонецПроцедуры

К сожалению, "просто" не всегда означает "правильно". Такая схема не работает, поскольку при изменении любого реквизита движок V7 сразу же ставит флажок модифицированности. То есть в нашей процедуре метод Модифицированность() вернет единицу в любом случае.

Но и этого можно избежать, правда, принеся в жертву наглядность. Поле для редактирования реквизита заменяем на текстовое поле, которое изображает текущее состояние реквизита (в поле "формула" нужно занести идентификатор реквизита, в нашем случае "Комментарий"). И рядом добавляем кнопку, на которую вешаем нашу процедуру.

Но нам еще нужно будет организовать изменение реквизита. Окончательный результат:

Процедура ВыборКомментария()

   НужноПерепроводить=?(Модифицированность()=0,0,1);

   НовыйКомментарий=СокрЛП(Комментарий);
   ВвестиСтроку(НовыйКомментарий,"Введите комментарий",400,1);
   Если СокрЛП(Комментарий)=СокрЛП(НовыйКомментарий) Тогда
      Возврат;
   КонецЕсли;
   Комментарий=СокрЛП(НовыйКомментарий);

   Если НужноПерепроводить=0 Тогда
      ПриЗаписиПерепроводить(0);
      Записать();
      ПриЗаписиПерепроводить(1);
   КонецЕсли;

КонецПроцедуры

Таким же образом можно разделаться с реквизитами любого типа: процедура будет такой же, только блок выбора значения для реквизита будет немного различаться (а если подойти творчески, то можно написать универсальную процедуру, которая сама определяет тип и выдаёт нужный диалог).

Кроме достоинства (оно действительно работает), у описанной техники есть и недостатки. Их два:

  1. Уже упоминавшаяся потеря привычной наглядности. Частично ее можно избежать, заменив текст на поле реквизита, недоступное для редактирования. Особенно хорошо это работает для флажков, чисел и агрегатных типов данных.
  2. Если таких "неважных" реквизитов в документе несколько, и пользователю требуется изменить их все, то на сервер "обрушится" несколько последовательных сохранений одного и того же документа.

Начать дискуссию

С Днём Победы!

9 мая, когда мы отмечаем День Победы, мы вспоминаем не только о тех, кто сражался на фронтах, но и о тех, кто с огромным мужеством выдерживал испытания в тылу. Среди них моя бабушка, Ольга Ефимовна, чья история наполнена не только горечью утраты, но и невероятной жизненной силой.

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

Путин: через 6 лет смертность от ДТП должна снизиться в 1,5 раза

В рамках достижения национальной цели «Комфортная и безопасная среда для жизни» президент поставил задачу снизить смертность в результате дорожно-транспортных происшествий.

Неприятие потери, или почему ты не можешь продать Сегежу с Газпромом

Ситуация: ты покупаешь акции компании, которая внезапно становится токсичной и месяц за месяцем нащупывает новое дно. Классический пример — ВТБ. Но это было всегда, а вот более свежие примеры — Сегежа или народное достояние. Газовая компания вообще держится в топ-3 по популярности среди акций, а её ближайшие перспективы не менее туманны, чем Альбион.

Неприятие потери, или почему ты не можешь продать Сегежу с Газпромом
Лучшие спикеры, новый каждый день

Изменился состав документов для получения налогового вычета за обучение

По расходам на образование с 1 января 2024 года в налоговую нужно принести справку об оплате услуг. Раньше для получения социального налогового вычета по НДФЛ были нужны платежные документы и договор.

5

📕 💪 Акция «Не МАЙся — заниМАЙся»! Самые нужные курсы по 3 690 рублей!

Успейте купить топовые курсы «Клерка» за 3 690 рублей до 13 мая! Для акции мы выбрали нужные для бухгалтера онлайн-курсы: они помогут освоить востребованные навыки, актуализировать знания к лету, освоить новую нишу, чтобы вырасти в карьере и увеличить доход.

Иллюстрация: Вера Ревина/Клерк.ру
1

🔥 Акция «Не МАЙся — заниМАЙся!»: топовые онлайн-курсы по 3 690 рублей

До 13 мая вы можете купить лучшие онлайн-курсы «Клерка» по учету на маркетплейсах, финансовому моделированию, ВЭД, зарплате и бухгалтерии с нуля за 3 690 рублей!

Опытом делятся эксперты-практики, без воды

Уважаемые коллеги! Поздравляем вас с Днем Победы!

Коллектив «Клерка» поздравляет всех с Днем Великой Победы!

Уважаемые коллеги! Поздравляем вас с Днем Победы!
3

Губернаторам могут разрешить продлевать майские праздники

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

8% в валюте на удобрениях. Свежие облигации: Акрон CNY на размещении

Нет ничего постыдного в том, чтобы инвестировать в навоз, даже если этот навоз берёт долги в юанях под 8%. Сегодня у нас в гостях Акрон — очередной эмитент, который позволяет инвесторам заработать в валюте. Крайне интересный выпуск, достойный находиться в портфелях всех любителей валюты.

8% в валюте на удобрениях. Свежие облигации: Акрон CNY на размещении

Проблема навигации на «Клерке». 20 лет мы искали решение и вот

Теперь навигационное меню можно свернуть и оно запомнит свое состояние.

Проблема навигации на «Клерке». 20 лет мы искали решение и вот

Сравнение сервисов для подачи отчетности. Обзор для бухгалтера

Статья представляет сравнительный обзор трех сервисов для подачи отчетности: 1С-Отчетность, СБИС и Контур Экстерн. Описаны их ключевые функции и ценовые предложения.

1

Правильно подобрали переводчиков и локализовали сайт: как за 2 месяца мы помогли торговой компании открыть филиалы в ОАЭ, Турции и Казахстане

Когда открываешь филиал компании за рубежом нужно заранее разобраться с требованиями местного законодательства: почитать гражданское и корпоративное право страны, в которой регистрируешь бизнес, и собрать правильный пакет документов. Все сертификаты, лицензии, разрешения должны быть профессионально переведены и заверены.

Правильно подобрали переводчиков и локализовали сайт: как за 2 месяца мы помогли торговой компании открыть филиалы в ОАЭ, Турции и Казахстане
Миникурсы, текстовые и видеоинструкции для бухгалтеров

Грядет очередной эксперимент по маркировке

C 1 сентября 2024 по 31 августа 2025 года Минпромторг планирует проведение эксперимента по маркировке отдельных видов смазочных материалов и специальных автомобильных жидкостей.

1

К 2036 году у 99% населения России будет интернет

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

Зачем обращаются в Росреестр чаще всего: официальные данные

Росреестр отчитался, с какими вопросами чаще всего обращались заявители в 2023 году.

Ведение бизнеса

Выручка малых технологических компаний должны вырасти в 7 раз

Для достижения национальной цели «Технологическое лидерство» президент поставил целевой показатель по росту выручки малых технологических компаний (МТК).

Названы приоритетные направления для развития новых технологий

Президент поставил задачу обеспечить технологическую независимость и формирование новых рынков по ряду направлений.

Все что вам нужно знать о штрафах за работу с самозанятыми. Реальный опыт юриста

Разберу на примере реальных  судебных дел, как предприниматели «попадают» на штрафы за работу с самозанятыми и теряют миллионы. Отвечу на 3 самых популярных вопроса и развею мифы.

1
Проверки ФАС

6 основных инструментов ФАС по борьбе с недобросовестной конкуренцией

Антимонопольная служба подвела итоги работы по противодействию недобросовестной конкуренции за 2023 год.

Интересные материалы

Бесплатно с Увольнение

Увольнение с отработкой: что такое, как правильно оформить, образец заявления

Увольнение с отработкой — это не нормативное, а обиходное выражение. Корректнее говорить об увольнении по собственному желанию или расторжении трудового договора по инициативе работника. Но важнее не термины, а правильное оформление.

Иллюстрация: Вера Ревина/Клерк.ру