1С Торговля и Склад. Запись документа без перепроведения
Очень часто встречается необходимость сохранять определенные изменения документа без его перепроведения. Однако штатные средства 1С не предоставляют такой возможности. Хотя мы знаем: если нельзя, но сильно хочется, то можно! В данной статье мы рассмотрим простой способ, позволяющий это сделать.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе
"Архитектура современных компьютерных сетей"
вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов.
На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Прежде всего коротко о проблеме. 1С Предприятие 7.7 при любых изменениях документа, даже не затрагивающих регистры, требует его перепроведения. Это вызывает определенные трудности, в частности при разграничении прав, когда сотруднику не имеющему права проведения документа требуется доступ к изменению определенных реквизитов, скажем комментария.
Недавно подобная проблема возникла и перед нами. Потребовалось добавить в документ реализации два чекбокса, которые должны были проставляться кассиром и кладовщиком: "Оплачено" и "Товар отпущен". Что в совокупности со штрихкодированием документов должно было значительно ускорить отпуск товара и улучшить уровень обслуживания клиентов.
Добавить на форму два чекбокса и привязать к ним два реквизита не составило труда, а вот после начались проблемы. Ни кладовщики, ни кассир не должны иметь возможности изменять табличную часть документа, но в тоже время должны иметь право устанавливать соответствующую галочку.
Рассмотрим решение. В Конфигураторе отркываем Модуль формы документа Реализация и в начале модуля объявляем новую переменную НадоЗаписать:
1Перем НадоЗаписать;
После этого добавим новую процедуру:
1Процедура ПриВыбореОплата()
2
3Форма.Закрыть(0);
4НадоЗаписать = 1;
5
6КонецПроцедуры
Теперь привяжем к чекбоксу Оплата вызов созданной процедуры:
Аналогичным образом создадим процедуру для чекбокса "Товар отпущен". После чего добавим в модуль следующую процедуру:
1Процедура ПриЗакрытии()
2
3Если НадоЗаписать = 1 Тогда
4ПриЗаписиПерепроводить (0);
5Записать();
6ПриЗаписиПерепроводить (1);
7НадоЗаписать = 0;
8СтатусВозврата(0);
9Возврат;
10КонецЕсли;
11
12КонецПроцедуры
Сохраняем изменения, проверяем. Все должно работать.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе
"Архитектура современных компьютерных сетей"
вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов.
На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще: