Вопрос № 54406: Доброе время суток. Голову уже сломал над таким вопросом.
В конфигурации при отмене проведения документа нужно, чтобы все документы этого вида, имеющие дату позже (больше), чем у выбранного на отмену проведения, то же становились не проведенными ...
Вопрос № 54.406
Доброе время суток. Голову уже сломал над таким вопросом.
В конфигурации при отмене проведения документа нужно, чтобы все документы этого вида, имеющие дату позже (больше), чем у выбранного на отмену проведения, то же становились не проведенными (а при пометке на удаление - помечались на удаление). А константа, имеющая тип "Дата" устанавливалась на дату документа, предшествующего помеченму на удаление. Может и сумбурно, но смысл кратко таков: Документ "Прием" от 4.09, 7.09 и 9.09. Константа установлена на 9.09. помечаем на удаление документ от 7.09.
автоматически помечается на удаление документ от 9.09, а константе устанавливается атрибут 4.09.
Помогите чем сможете.
Спасибо.
Отправлен: 05.09.2006, 14:59
Вопрос задал: Muxa_I (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Гребиников Павел Генадьевич
Здравствуйте, Muxa_I!
приведенный код далеко не полон, так как он обрабатывает только удаление документов, отмену проведения сможете сделать сами по томуже принцыпу
выборка документов производится за дату документа и за 40 последующих месяцев (можете поставить больще)
Константа Вашаконстанта устанавливается на дату последнего проведенного документа.
Отвечает: Warior
Здравствуйте, Muxa_I!
Позволю немного несогласиться с предыдущим экспертом.
В таком виде обработка начинает работу с последнего документа и работает в начало базы
Приложение:
Ответ отправил: Warior (статус: 3-ий класс)
Ответ отправлен: 05.09.2006, 15:55
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Muxa_I!
Давайте уточнимся насчет константы. Это реализуется механизмом последовательностей, и не нужно ничего изобретать, последовательность сама отслеживает дату.
Очень опасно отменять проведение всех документов. Если кто-то случайно зацепит документ прошлого года, то Вам прийдется ручками клацать все документы этого года. Но если нужно выбрать все документы начиная с текущего включая текущий то это
ВыбратьДокумента(Док.ТекущийДокумент(),);
Предупреждаю: если бух клацнет не туда, то он обвинит Вас в том, что документы распровелись.
Отвечает: Ovr1970
Здравствуйте, Muxa_I!
Во первых подобный подход неправилен как с точки зрения бухгалтерского учета, так и с поддерживаемого 1С способа учета. Позволю себе пару советов.
Удалять и распроводить документы списком нельзя безнаказанно даже при монопольном доступе. Почему? - Отвечаю: Бухгалтера (операторы) часто держат открытими несколько документов. Если документ открыт - он заблокирован и его нельзя записать (кроме как из открытой формы), нельзя провести, нельзя удалить. Подобные вещи реализуются с помощью справочника, который заполняется списком документов для удаления, после чего документы удаляются например каждые две минуты. Если он не удалится с первой попытки, удалится со
второй третьй и т.д.
Заполнять константу документом нельзя, т.к. невозможно контролировать откат заполнения. Подобные вещи реализуются либо через регистры, либо через справочники. Можно создать специальный справочник с одной записью - с полем "ДатаПроведенияпоследнегоДокумента", которое естественно периодичекое. И заполнять это поле оператором "УстановитьРеквизитСправочника". При распроведении документа значение поля автоматически очистится.
Наконец если вопрос касался реализации последовательного проведения документов (т.е. все действия сводятся к цели последовательно проведения документов), то в 1С есть специальный механизм Последовательностей для подобных вещей. Вам стоит почитать о нем. Т.к. в последовательности проведения документов могут быть задействованы документы разных типов, которые метод, о котором Вы спрашиваете не покрывает.
Ответ отправил: Ovr1970 (статус: Студент)
Ответ отправлен: 07.09.2006, 14:29