Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Присвоить значение реквизиту документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
alexkhua
Есть реквизит документа "Стоимость" . В процедуре проведения этому реквизиту присваивается итоговое значение суммы регистра накопления "Остатки материалов". Если зайти в документ и провести его то значение присваивается,а если проводить стандартной обработкой проведения то не присваивается. Как это можно исправить?
Petre
Что гадать? Надо смотреть отладчиком.
logist
Цитата(alexkhua @ 02.08.13, 15:36) необходимо зарегистрироваться для просмотра ссылки
Как это можно исправить?

Записывать данные этого реквизита в процедуре ПередЗаписью
Agapov_Stas
скорее всего ВАША процедура находится в модуле формы, а не в модуле документа
такая процедура будет срабатывать только если Вы откроеТЕ документ и проведеТЕ, но не будет срабатывать если Вы будеТЕ проводить программно
необходимо перенести данную процедуру в модуль документа


 ! 

Правила, п.1
 
alexkhua
Цитата(Agapov_Stas @ 05.08.13, 9:38) необходимо зарегистрироваться для просмотра ссылки
скорее всего ВАША процедура находится в модуле формы, а не в модуле документа
такая процедура будет срабатывать только если Вы откроеТЕ документ и проведеТЕ, но не будет срабатывать если Вы будеТЕ проводить программно
необходимо перенести данную процедуру в модуль документа

Спасибо конечно за совет, но процедура в модуле документа. Чудеса какие-то.


 ! 

Правила, п.13
 

Может все из-за того, что этот реквизит вытащен на форму?
logist
Повторюсь
Цитата(logist @ 02.08.13, 17:32) необходимо зарегистрироваться для просмотра ссылки
Записывать данные этого реквизита в процедуре ПередЗаписью

в модуле объекта.
Agapov_Stas
Цитата(alexkhua @ 05.08.13, 11:12) необходимо зарегистрироваться для просмотра ссылки
Может все из-за того, что этот реквизит вытащен на форму?

т.е. его нет в реквизитах документа ? 19000000.gif
такие элементы формы данные не хранят
alexkhua
Как нет в реквизитах ? Это и есть реквизит "Стоимость". В модуле документа, не в процедуре ПередЗаписью, не в процедуре Проведения, с помощью проведения документа ИзВне я не могу изменить значение этого реквизита, только когда захожу в документ и провожу внутри. Это какие-то особенности программы что ли?
Agapov_Stas
Цитата(alexkhua @ 07.08.13, 9:43) необходимо зарегистрироваться для просмотра ссылки
Как нет в реквизитах ? Это и есть реквизит "Стоимость". В модуле документа, не в процедуре ПередЗаписью, не в процедуре Проведения, с помощью проведения документа ИзВне я не могу изменить значение этого реквизита, только когда захожу в документ и провожу внутри. Это какие-то особенности программы что ли?

Когда Вы проводите "ИзМне" тогда срабатываю процедуры которые находятся в модуле документа(!)- поместите код в процедуру ПередЗаписью() и будет Вам счастье
А если код срабатывает ТОЛЬКО когда вы заходите в документ и проводите внутри - это говорит о том, что код находится в модуле ФОРМЫ - это разные вещи
alexkhua
Цитата(Agapov_Stas @ 07.08.13, 9:57) необходимо зарегистрироваться для просмотра ссылки
Когда Вы проводите "ИзМне" тогда срабатываю процедуры которые находятся в модуле документа(!)- поместите код в процедуру ПередЗаписью() и будет Вам счастье
А если код срабатывает ТОЛЬКО когда вы заходите в документ и проводите внутри - это говорит о том, что код находится в модуле ФОРМЫ - это разные вещи

Вы меня конечно извините, но я писал уже не раз, что процедуры все в модуле документа. Делал так: В процедуру
ПередЗаписью() вставлял Функцию типа ОпределитьСтоимость(), в этой функции запросом выбирал из регистра накопления итог по измерению Сумма и присваивал его переменной (реквизиту) Стоимость.
logist
Цитата(alexkhua @ 07.08.13, 10:53) необходимо зарегистрироваться для просмотра ссылки
но я писал уже не раз, что процедуры все в модуле документа

Нет такого понятия "Модуль документа", есть Модуль объекта и Модуль формы.

Цитата(alexkhua @ 07.08.13, 10:53) необходимо зарегистрироваться для просмотра ссылки
ПередЗаписью() вставлял Функцию типа ОпределитьСтоимость(), в этой функции запросом выбирал из регистра накопления итог по измерению Сумма и присваивал его переменной (реквизиту) Стоимость.

У вас перед записью объекта еще нет в базе, какую стоимость вы пытаетесь получить? Суть проблемы до сих пор не понятна. Ну и в любом случае то как вы поступаете это не правильно.
Agapov_Stas
Вы меня конечно извините - но приведите кусок кода - а то я вставил туда и туда - а не деле окажется не так

Цитата(logist @ 07.08.13, 11:37) необходимо зарегистрироваться для просмотра ссылки
У вас перед записью объекта еще нет в базе

если перепроводить - то есть
alexkhua
Цитата(logist @ 07.08.13, 11:37) необходимо зарегистрироваться для просмотра ссылки
У вас перед записью объекта еще нет в базе, какую стоимость вы пытаетесь получить? Суть проблемы до сих пор не понятна. Ну и в любом случае то как вы поступаете это не правильно.

Я понимаю, что менять реквизит при проведении это не правильно, но нужно бухгалтеру, что б он был в списке документов. Не пересчитывать же значение каждый раз при открытии формы списка.

Цитата(logist @ 07.08.13, 11:37) необходимо зарегистрироваться для просмотра ссылки
У вас перед записью объекта еще нет в базе, какую стоимость вы пытаетесь получить?
Я вставил в модуль объекта Записать(), а потом выбираю значение регистров.
logist
icon_budo7.gif
alexkhua
А, что? why.gif
logist
Та не, ниче. Каждый извращается как может, но записывать документ в ПередЗаписью это не правильно.
alexkhua
Цитата(logist @ 07.08.13, 16:04) необходимо зарегистрироваться для просмотра ссылки
Та не, ниче. Каждый извращается как может, но записывать документ в ПередЗаписью это не правильно.

Записываю я его в процедуре проведения. Ладно буду разбираться. Спасибо всем.
Vofka
Цитата(alexkhua @ 07.08.13, 16:10) необходимо зарегистрироваться для просмотра ссылки
Записываю я его в процедуре проведения.

А надо в ПередЗаписью(). А выше, что Логист написал, так это шутка юмора.
logist
Цитата(Vofka @ 07.08.13, 16:40) необходимо зарегистрироваться для просмотра ссылки
А надо в ПередЗаписью()

Нет. Это не шутка юмора, человек считывает данные из регистров уже после проведения документа (данные этого же документа), но почему-то в ПередЗапсью. Вообще, я перечитал тему пару раз и так и не понял, где и что записывается. Всё я удаляюсь, без примеров кода говорить больше не о чем.
alexkhua
Получилось в процедуре ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>) только при условии Отказ = Ложь.
Agapov_Stas
Было бы странно если бы срабатывало при условии Отказ = Истина .... faceoff.gif
alexkhua
Цитата(Agapov_Stas @ 08.08.13, 0:21) необходимо зарегистрироваться для просмотра ссылки
Было бы странно если бы срабатывало при условии Отказ = Истина .... faceoff.gif

Объясните, пожалуйста, в чем странность? Просто без условия он не проводится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.