Имя: Пароль:
1C
1C 7.7
v7: Как правильно за один раз списать несколько счетов
0 evgpinsk_
 
27.05.23
21:22
Есть список счетов (например за текущее число) на основании которых нужно создать расходные накладные.
Делаю это в цикле через открытие формы расходной накладной и передаче ей параметра:

Пока док.ПолучитьДокумент() = 1 Цикл    
  ОткрытьФорму("Документ.Расходные_накладные","СписатьСчёт",док.ТекущийДокумент());
конеццикла

Но проблема в том что по результату списывается только один первый не списанный счёт.
Запускаю процедуру ещё раз и списывается следующий только один счёт.

Как можно решить проблему?
1 evgpinsk_
 
27.05.23
21:23
Вроде как цикл пробегает быстрее, чем происходит списание документа и поэтому не достигается нужный результат
2 dedmoroz777
 
27.05.23
21:28
ОткрытьФормуМодально
3 evgpinsk_
 
27.05.23
21:42
(2) Да, Спасибо )
4 AAA
 
27.05.23
21:45
а зачем форму открывать?
5 dedmoroz777
 
27.05.23
22:00
(4) Ну, ПриОткрытии что-то там делается, наверное.
6 Guk
 
28.05.23
00:50
судя по веткам на мисте, в РБ 8-ка не котируется. в общем и правильно, 8-ка еще сырая...
7 Остап Ибрагимович
 
28.05.23
10:46
(6): ну, например, в 7ке можно любую форму списка (со списком) открыть для выбора/подбора значений - а в восьмерке только ту у которой соотв.свойство в метаданных установлено. позорище.
8 2S
 
28.05.23
14:47
(7) разверните мысль
В 8ке есть динамические списки
9 evgpinsk_
 
28.05.23
18:26
(4) В форме процедура проведения документа описана. Вот её и запускаю при открытии формы
10 AAA
 
28.05.23
18:56
(9)В форме процедура проведения ?? Это что-то новое
11 AAA
 
28.05.23
18:57
Если люди ничего не довводят руками, то совершенно незачем открывать формы документов, можно создавать и проводить программно
12 dedmoroz777
 
28.05.23
19:02
(10) Почему бы и нет? (11) Форму можно открыть без вывода формы на экран. Если это не сотни доков в час, зачем городить лишние сущности?
13 AAA
 
28.05.23
20:10
(12)кто спорит, что можно открыть без вывода на экран? так и делается, например при печати документов. Автор говорит, что у него логика проведения в форме
14 dedmoroz777
 
28.05.23
20:36
(13) И что? Что в этом плохого? Логика чего угодно может быть в форме. В модуле проведения делаются проводки и записи в регистры.
15 Злопчинский
 
28.05.23
20:59
(14) и периодические реквизиты справочников можно привязать
16 AAA
 
29.05.23
04:04
(14)Логика чего угодно, но не проведения. Логика записи документа - да.
(15)кто с этим спорит?
17 evgpinsk_
 
29.05.23
10:19
(10) Проведение в форме модуля документа - я не точно выразился.
А вот код процедуры "ВводНаОсновании" - он в форме документа. И вот к нему я обращаюсь при открытии
18 MWWRuza
 
29.05.23
10:31
(17) он в форме документа.

А почему нет... Например, в форме документа может распологаться процедура автоматического ввода документа переоценки остатков, если этот текущий документ - документ прихода. А потом, уже само проведение в модуле документа.
Хотя, правильнее ее вынести в глобальник и из модуля формы вызывать через контекст... Тогда, ее можно будет вызывать и из какой-либо обработки, перебирающей документы в цикле, передавая в нее текущий документ из цикла.
19 evgpinsk_
 
29.05.23
11:45
(18) Не совсем понимаю смысл вынесения в ГМ?

попробую подробней  описать задачу которая стояла:

Штатно: есть счета, выставляемые на клиентов и далее в ручном режиме при выдаче товара на основании счёта создаётся расходка.
У нас в течении дня есть счета "на доставку" их за день около 10 штук и все их желательно списать вечером по кнопке все сразу.

Вот для этого я и реализовал то что спрашивал в (0)

п.с. Нужно ли для этого править и так захламлённый ГМ? вроде как нет
20 MWWRuza
 
29.05.23
12:25
Смысл вынесения этой процедуры в ГМ(обязательно с директивой "Экспорт") - что-бы она была доступна "отовсюда", и из модуля формы документа, и из обработки, когда Вы в ней перебираете эти документы в цикле.
Но, это Вам решать, можно и не делать этого, а делать через открытие формы документа(можно ложного), но, имхо это через одно место...
21 evgpinsk_
 
30.05.23
09:39
(20) как по мне, таким способом нарушается принцип ООП. Красивей когда функции над объектом расположены в самом объекте. Ведь таких объектов и функций может быть много разных. Располагать их в гм - имхо не то.
Ну и ещё момент что изменения в гм не обрабатываются через турбо мд.
22 ADirks
 
30.05.23
10:32
(21) а для этого 1С++ есть
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn