Пример несколько упрощенной задачи, в которой можно это применить:
Документ "Расход товаров", который служит для отражения в системе учета фактов продажи товаров и списывает их со склада. Документ вводится один раз в начале смены и остается активным до конца смены. Ввод новой продажи в течении смены осуществляется добавлением новых строк в документ и отработки процедуры “Допровести” (одноименная кнопка в форме). Процедура “Допровести” должна сформировать движения по списанию выбранных товаров, контролируя наличие необходимого их количества на складе с учетом ранее проданных товаров, введенных в этом документе. Т.е. необходимо реализовать режим допроведения документа (уже проведенные строки не должны проводиться повторно) с поддержкой в актуальном состоянии временного расчета регистра с учетом уже записанных при предыдущих продажах в этом документе движений.
Обновлено: 15:08 04.10.2008
Качаете, это простенькая конфигурация. Содержит справочник товаров, регистр остатков товаров и пару документов: приход товаров и расход товаров, где и организовано допроведение. И отчет по остаткам для контроля результатов.
Может найдутся идеи и получше или неудачные моменты в этой. Буду рад, если кто выскажет свои мысли на этот счет.
Кстати, чтоб два раза не бегать по строчкам дока при проведении, флаг, что строки старые измененые, можно вынести, как реквизит в шапку дока.
(1) Доделал, обновил файл
НизачОт… Отмени проведение документа и привет.
Проводить по кнопке «Провести», там отменить нельзя…
В кнопке Ок, тоже можно не спрашивать…
Идея как?
(3) А еще, удали кнопку Ок с формы:-) А работать, кнопка Провести, потом Закрыть:-)
(3) А при закрытии проводить принудительно…
(4) При чем тут сам документ ? Распровести можно в журнале, еслы вы не знакомы с этим… Или пометить на удаление. снять пометку на удаление.
(5) Да никак.
(6,7) Зачем ?
(8) И что, при распроведении, пометке на удаление или снятии, можно тоже отловить от работать, что нужно. Т.е. все сторки сделать добаленными, флаг сбросить, также как при вводе нового, например.
Есть вариант получше? Или как? За недоработки все-равно спасибо. Еще есть слабые места? Буду благодарен.
(9) Отловить можно всё.
Есть процедура ОбработкаУдаленияПроведения
Саму идею — в топку. Не надо этого ничего. Тем более, как у вас это реализовано, с полным перебором строк всегда..
+10 Вообще самим механизмом всегда пользовался только, если надо внести изменения по какому-либо регистру. Например, добавили /удалили измерение и т.д.. Т.е. выборочное перепроведение.
(10) Т.е. я понял так, что отказываемся от этой возможности, так как в 1С нет штатного постого механизма?
Или просто вопрос в реализации?
(10) А то, что по старым строкам, если они не изменены, бегать не стоит, то это я че то тупанул:-)
Это я поправлю, как и вещи связанные с распроведением, пометкой на удал. и т.д.
Я просто хочу определиться и четко понять, организовать допроведение новых строк дока, оставив возможность изменения и удаления старых можно и как лучше?
Поправил, с учетом предидущих проблем, обновил…
Вроде все работает как надо, даже групповое перепроведение учел.
Обновил: добавил контроль наличия необходимого количества товара на складе при продаже с учетом ранее проданных товаров, введенных в этом документе.
(3) А если отменять нельзя? 5 человек набивают расходы — остаток съедят мигом.
(16) Отмену уже, вроде ж, учел и групповое перепроведение доков…
У себя на одном филлиале реализовал т.о. (для решения в конкретной ситуации): для уже проведенных строк выставляется признак проведения и эти строки запрещены для любых манипуляций, естественно перебором строк при проведении отыскиваются не «допроведенные» — документ обечно не превышает 50-100 строк, поэтому прямой перебор не сильно напрягает. При отмене проведения естественно все доступно для изменений. Но это, повторюсь, сильно частный случай.
Странно и непонятно. Ну трудов много затрачено. Потому заслуженный ПЛЮС