Странное поведение системы при проведении документа
8.2.15.294
Режим управляемого приложения.
Есть некий документ. Должен проводиться в 5 регистров.
При проведении из формы списка - работает все как положено. А вот когда проводится из формы документа, то проводится не во все регистры. По отладчику удалось понять "как", но не удалось понять "почему".
В "спорном" регистре в модуле набора записей были выставлены события ПередЗаписью и ПриЗаписи. В итоге при проведении из формы списка сначала очищаются движения, затем записываются новые, а при проведении из формы документа сначала очищаются движения, затем записываются новые, а после снова очищаются. Т.е. в первом случае в ПередЗаписью и ПриЗаписи попадаем по два раза, а во втором - по три раза.
Причем в обоих случаях первичная очистка движений вызывается из модуля объекта документа из процедуры ОбработкаПроведения, запись новых движений из этой же процедуры, а вот при проведении из формы документа после выхода из процедуры ОбработкаПроведения, пройдясь по паре подписок снова очищаются движения, причем не из одной подписки явно очистка движений или запись в этот регистр набора записей не вызывается.
Если создать новую форму или вообще удалить форму документа (в этом случае она создается автоматически), то из формы документа все проводится как и нужно как и из формы списка. Точно также правильно отрабатывает и если провести в режиме обычного приложения. Свойства "глючной" формы сравнивал со свойствами вновь созданной (пустой) - одинаковы. Как такое может быть?
Куда смотреть? Может кто с подобным сталкивался?
Режим управляемого приложения.
Есть некий документ. Должен проводиться в 5 регистров.
При проведении из формы списка - работает все как положено. А вот когда проводится из формы документа, то проводится не во все регистры. По отладчику удалось понять "как", но не удалось понять "почему".
В "спорном" регистре в модуле набора записей были выставлены события ПередЗаписью и ПриЗаписи. В итоге при проведении из формы списка сначала очищаются движения, затем записываются новые, а при проведении из формы документа сначала очищаются движения, затем записываются новые, а после снова очищаются. Т.е. в первом случае в ПередЗаписью и ПриЗаписи попадаем по два раза, а во втором - по три раза.
Причем в обоих случаях первичная очистка движений вызывается из модуля объекта документа из процедуры ОбработкаПроведения, запись новых движений из этой же процедуры, а вот при проведении из формы документа после выхода из процедуры ОбработкаПроведения, пройдясь по паре подписок снова очищаются движения, причем не из одной подписки явно очистка движений или запись в этот регистр набора записей не вызывается.
Если создать новую форму или вообще удалить форму документа (в этом случае она создается автоматически), то из формы документа все проводится как и нужно как и из формы списка. Точно также правильно отрабатывает и если провести в режиме обычного приложения. Свойства "глючной" формы сравнивал со свойствами вновь созданной (пустой) - одинаковы. Как такое может быть?
Куда смотреть? Может кто с подобным сталкивался?
По теме из базы знаний
Найденные решения
(19) Отбой
Проблема решена.
Всем спасибо за потраченное время на помощь!
Вознаграждение я думаю будет справедливо выплатить тому, кто навел на правильный ответ, а именно Oleg Space (17). Если по поводу вознаграждения кто-то иного мнения, я готов обсудить в ближайший час. После чего переведу $m.
Причина: в форме в дереве реквизитов у Объект-> Движения зачем-то был выставлен в Истину флажок ИспользоватьВсегда, хотя коллекция движений в форме не используется.
Проблема решена.
Всем спасибо за потраченное время на помощь!
Вознаграждение я думаю будет справедливо выплатить тому, кто навел на правильный ответ, а именно Oleg Space (17). Если по поводу вознаграждения кто-то иного мнения, я готов обсудить в ближайший час. После чего переведу $m.
Причина: в форме в дереве реквизитов у Объект-> Движения зачем-то был выставлен в Истину флажок ИспользоватьВсегда, хотя коллекция движений в форме не используется.
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) я бы предположил, что отрабатывает какая-то подписка на событие, они дебаггером не ловятся. И еще есть подозрение, что при интерактивном проведении где-то в форме ставится некий флажок (в доп свойства например), которые в этом событии рассматривается и меняет алгоритм проведения.
Иначе не представляю, как можно организовать такое.
Иначе не представляю, как можно организовать такое.
(15) И переименовывать пробовали, и создавать копированием пробовали, и кэш чистили, и ИБ заново переподключали, и в файловой пробовали и в клиент-серверной - нет нужного результата.
(16) Пока не могу этого сделать.
(17) Нету
Сейчас еще раз внимательно сравню реквизиты и настройки правильно и неправильно работающих форм.
(16) Пока не могу этого сделать.
(17) Нету
Сейчас еще раз внимательно сравню реквизиты и настройки правильно и неправильно работающих форм.
(18) Ну тогда гадаем дальше:
Конфигурация "самописная" или доработка типовой ?
Если доработка то какой конфигурации ?
Какие события есть у формы интересует ПередЗаписью() ПриЗаписи() ПослеЗапси() ПриЗакрытии() ОбработкаЗаписиНового() как на сервере так и на клиенте неплохо бы их код ?
Что указано в конфигураторе в свойствах документа в разделе движения параметр "Удаление движений" ?
При повторном проведении из формы ошибка повторяется ?
При проведении нового документа из формы ошибка есть ?
Конфигурация "самописная" или доработка типовой ?
Если доработка то какой конфигурации ?
Какие события есть у формы интересует ПередЗаписью() ПриЗаписи() ПослеЗапси() ПриЗакрытии() ОбработкаЗаписиНового() как на сервере так и на клиенте неплохо бы их код ?
Что указано в конфигураторе в свойствах документа в разделе движения параметр "Удаление движений" ?
При повторном проведении из формы ошибка повторяется ?
При проведении нового документа из формы ошибка есть ?
(19) Отбой
Проблема решена.
Всем спасибо за потраченное время на помощь!
Вознаграждение я думаю будет справедливо выплатить тому, кто навел на правильный ответ, а именно Oleg Space (17). Если по поводу вознаграждения кто-то иного мнения, я готов обсудить в ближайший час. После чего переведу $m.
Причина: в форме в дереве реквизитов у Объект-> Движения зачем-то был выставлен в Истину флажок ИспользоватьВсегда, хотя коллекция движений в форме не используется.
Проблема решена.
Всем спасибо за потраченное время на помощь!
Вознаграждение я думаю будет справедливо выплатить тому, кто навел на правильный ответ, а именно Oleg Space (17). Если по поводу вознаграждения кто-то иного мнения, я готов обсудить в ближайший час. После чего переведу $m.
Причина: в форме в дереве реквизитов у Объект-> Движения зачем-то был выставлен в Истину флажок ИспользоватьВсегда, хотя коллекция движений в форме не используется.
похоже на стандартную запись набора записей.. тогда надо отладчиком смотреть каким образом заполняется (или скорее почему не заполняется) набор записей этого регистра при этой итерации в обработчике проведения
из формы большее количество записей может быть из-за принудительного вызова записи из формы в каком нибудь из обработчиков ПередЗаписью, ПриЗаписи и т.п.
из формы большее количество записей может быть из-за принудительного вызова записи из формы в каком нибудь из обработчиков ПередЗаписью, ПриЗаписи и т.п.
(4)
нет в форме принудительного вызова записи, плюс ко всему в модуле объекта ПередЗаписью вызывается только один раз.
(4)
Не смог отладчиком (да и никак иначе) найти место вызова третьей итерации :(
из формы большее количество записей может быть из-за принудительного вызова записи из формы в каком нибудь из обработчиков ПередЗаписью, ПриЗаписи и т.п.
нет в форме принудительного вызова записи, плюс ко всему в модуле объекта ПередЗаписью вызывается только один раз.
(4)
похоже на стандартную запись набора записей.. тогда надо отладчиком смотреть каким образом заполняется (или скорее почему не заполняется) набор записей этого регистра при этой итерации в обработчике проведения
Не смог отладчиком (да и никак иначе) найти место вызова третьей итерации :(
Я бы поступил так
1)Попробуй, в форме документа закомментировать все собития связанные с записью (перед,при,после). И посмотри результат.
2)Если ошибка устранилась, раскомментируй процедуру ПередЗаписью, и снова проверь, и так далее.
Согласен что долго, и муторно, но зато придешь к куску кода, который инициализирует очистку регистра
+ по наименованию регистра, где повторно очищаются данные, глобальным поиском находишь в коде где он упоминается и ставишь везде точку останова.
1)Попробуй, в форме документа закомментировать все собития связанные с записью (перед,при,после). И посмотри результат.
2)Если ошибка устранилась, раскомментируй процедуру ПередЗаписью, и снова проверь, и так далее.
Согласен что долго, и муторно, но зато придешь к куску кода, который инициализирует очистку регистра
+ по наименованию регистра, где повторно очищаются данные, глобальным поиском находишь в коде где он упоминается и ставишь везде точку останова.
(10) Код формы не при чем же, ведь даже при все закомментированном коде формы - не проводится как нужно. Или я чего-то не понимаю?
Свойства формы которая неверно работает и пустой новой формы - идентичны.
Подписки на события вещаются же на объект, а не на форму, поэтому одинаковы для объекта.
(11) Не понял фразы
Свойства формы которая неверно работает и пустой новой формы - идентичны.
Подписки на события вещаются же на объект, а не на форму, поэтому одинаковы для объекта.
(11) Не понял фразы
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)