Странное поведение системы при проведении документа

1. iRounder 99 23.03.17 13:45 Сейчас в теме
8.2.15.294
Режим управляемого приложения.

Есть некий документ. Должен проводиться в 5 регистров.
При проведении из формы списка - работает все как положено. А вот когда проводится из формы документа, то проводится не во все регистры. По отладчику удалось понять "как", но не удалось понять "почему".
В "спорном" регистре в модуле набора записей были выставлены события ПередЗаписью и ПриЗаписи. В итоге при проведении из формы списка сначала очищаются движения, затем записываются новые, а при проведении из формы документа сначала очищаются движения, затем записываются новые, а после снова очищаются. Т.е. в первом случае в ПередЗаписью и ПриЗаписи попадаем по два раза, а во втором - по три раза.

Причем в обоих случаях первичная очистка движений вызывается из модуля объекта документа из процедуры ОбработкаПроведения, запись новых движений из этой же процедуры, а вот при проведении из формы документа после выхода из процедуры ОбработкаПроведения, пройдясь по паре подписок снова очищаются движения, причем не из одной подписки явно очистка движений или запись в этот регистр набора записей не вызывается.
Если создать новую форму или вообще удалить форму документа (в этом случае она создается автоматически), то из формы документа все проводится как и нужно как и из формы списка. Точно также правильно отрабатывает и если провести в режиме обычного приложения. Свойства "глючной" формы сравнивал со свойствами вновь созданной (пустой) - одинаковы. Как такое может быть?

Куда смотреть? Может кто с подобным сталкивался?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
20. iRounder 99 24.03.17 11:05 Сейчас в теме
(19) Отбой
Проблема решена.

Всем спасибо за потраченное время на помощь!
Вознаграждение я думаю будет справедливо выплатить тому, кто навел на правильный ответ, а именно Oleg Space (17). Если по поводу вознаграждения кто-то иного мнения, я готов обсудить в ближайший час. После чего переведу $m.

Причина: в форме в дереве реквизитов у Объект-> Движения зачем-то был выставлен в Истину флажок ИспользоватьВсегда, хотя коллекция движений в форме не используется.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
7. starjevschik 23.03.17 20:25 Сейчас в теме
(1) я бы предположил, что отрабатывает какая-то подписка на событие, они дебаггером не ловятся. И еще есть подозрение, что при интерактивном проведении где-то в форме ставится некий флажок (в доп свойства например), которые в этом событии рассматривается и меняет алгоритм проведения.
Иначе не представляю, как можно организовать такое.
8. semyon 23.03.17 21:24 Сейчас в теме
(7) В форме в событиях ПередЗаписьюНаСервере, ПриЗаписиНасервере и ПослеЗаписиНаСервере есть какой нибудь код?
Если есть - скопируйте сюда.
Ну или Конфу целиком.
11. kolya_tlt 86 24.03.17 09:00 Сейчас в теме
(1) не пойму в чем причина не воспользоваться точкой останова и на странной очистке вызвать стек вызовов, по нему понять причину вызова.
ipoloskov; +1 Ответить
17. spacecraft 24.03.17 10:09 Сейчас в теме +5 $m
(1) в проблемной форме, в реквизитах формы, есть набор этого регистра и он выведен на форму?
2. sommid 23.03.17 14:03 Сейчас в теме
посмотрите стек вызова при третьей итерации записи/очистки вашего регистра - посмотрите откуда шел вызов записи.
может в событиях формы После записи или При записи чего-нить прописано.
3. iRounder 99 23.03.17 14:16 Сейчас в теме
При третьей итерации в стеке вызовов 1 строка - РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.МодульНабораЗаписей.ПередЗаписью(Отказ = Ложь, Замещение = Истина).
14. iRounder 99 24.03.17 09:41 Сейчас в теме
Я в (3) отвечал на этот вопрос. Про стек вызовов. И про точки останова.
Ни по одному ни по другому не видно откуда попадаю в третий раз в ПередЗаписью модуля набора записей регистра.
15. kolya_tlt 86 24.03.17 09:54 Сейчас в теме
(14) форму переименовать пробовали?
16. Dr_Medved 24.03.17 10:05 Сейчас в теме
(15) Конфигурацию в студию, вариантов много, такого поведения, но судя из условия задачи "из списка проводится нормально из формы нет", значит что грабли лежат однозначно в модуле формы
18. iRounder 99 24.03.17 10:23 Сейчас в теме
(15) И переименовывать пробовали, и создавать копированием пробовали, и кэш чистили, и ИБ заново переподключали, и в файловой пробовали и в клиент-серверной - нет нужного результата.
(16) Пока не могу этого сделать.
(17) Нету

Сейчас еще раз внимательно сравню реквизиты и настройки правильно и неправильно работающих форм.
19. Dr_Medved 24.03.17 10:56 Сейчас в теме
(18) Ну тогда гадаем дальше:
Конфигурация "самописная" или доработка типовой ?
Если доработка то какой конфигурации ?
Какие события есть у формы интересует ПередЗаписью() ПриЗаписи() ПослеЗапси() ПриЗакрытии() ОбработкаЗаписиНового() как на сервере так и на клиенте неплохо бы их код ?
Что указано в конфигураторе в свойствах документа в разделе движения параметр "Удаление движений" ?
При повторном проведении из формы ошибка повторяется ?
При проведении нового документа из формы ошибка есть ?
20. iRounder 99 24.03.17 11:05 Сейчас в теме
(19) Отбой
Проблема решена.

Всем спасибо за потраченное время на помощь!
Вознаграждение я думаю будет справедливо выплатить тому, кто навел на правильный ответ, а именно Oleg Space (17). Если по поводу вознаграждения кто-то иного мнения, я готов обсудить в ближайший час. После чего переведу $m.

Причина: в форме в дереве реквизитов у Объект-> Движения зачем-то был выставлен в Истину флажок ИспользоватьВсегда, хотя коллекция движений в форме не используется.
21. kolya_tlt 86 24.03.17 13:20 Сейчас в теме
(20) ищите проблему дальше. в типовых решениях, в типовых формах сделано также и этот флаг выставляется автоматически
4. sommid 23.03.17 14:28 Сейчас в теме
похоже на стандартную запись набора записей.. тогда надо отладчиком смотреть каким образом заполняется (или скорее почему не заполняется) набор записей этого регистра при этой итерации в обработчике проведения

из формы большее количество записей может быть из-за принудительного вызова записи из формы в каком нибудь из обработчиков ПередЗаписью, ПриЗаписи и т.п.
5. iRounder 99 23.03.17 14:35 Сейчас в теме
(4)
из формы большее количество записей может быть из-за принудительного вызова записи из формы в каком нибудь из обработчиков ПередЗаписью, ПриЗаписи и т.п.

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


(4)
похоже на стандартную запись набора записей.. тогда надо отладчиком смотреть каким образом заполняется (или скорее почему не заполняется) набор записей этого регистра при этой итерации в обработчике проведения

Не смог отладчиком (да и никак иначе) найти место вызова третьей итерации :(
6. Dondarrion 23.03.17 16:42 Сейчас в теме
Я бы поступил так
1)Попробуй, в форме документа закомментировать все собития связанные с записью (перед,при,после). И посмотри результат.
2)Если ошибка устранилась, раскомментируй процедуру ПередЗаписью, и снова проверь, и так далее.
Согласен что долго, и муторно, но зато придешь к куску кода, который инициализирует очистку регистра
+ по наименованию регистра, где повторно очищаются данные, глобальным поиском находишь в коде где он упоминается и ставишь везде точку останова.
9. iRounder 99 24.03.17 08:26 Сейчас в теме
(6) Сразу же, еще до вопроса на форуме, в модуле формы был закомментирован весь код - поведение не изменилось.
(7) Проверялись все данные которые передаются в процедуры проведения и т.п. при обоих вариантах проведения - абсолютно идентичны.
(8) Эти события не используются.
10. starjevschik 24.03.17 08:56 Сейчас в теме
(9) еще раз - данные, которые передаются в процедуры проведения, не при чем. Проверяй доп свойства во всем коде формы и подписки на события.
12. iRounder 99 24.03.17 09:30 Сейчас в теме
(10) Код формы не при чем же, ведь даже при все закомментированном коде формы - не проводится как нужно. Или я чего-то не понимаю?
Свойства формы которая неверно работает и пустой новой формы - идентичны.
Подписки на события вещаются же на объект, а не на форму, поэтому одинаковы для объекта.
(11) Не понял фразы
13. kolya_tlt 86 24.03.17 09:35 Сейчас в теме
красненькая точка - точка останова.
красным выделена команда стека вызовов.

воспользовавшись не замысловатым способом вы получите список процедур и функций как вы попали в третью не нужную очистку
Прикрепленные файлы:
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)