Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Одноразовое сохранение данных в константу
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
ozstriker
Доброго времени суток!

Ситуация:
Есть склад. На складе есть остаток. Для этого остатка создана константа.

Приехали 10 ящиков, оформились на склад. В константу КАКОЙ-ТО ФУНКЦИЕЙ хотелось бы добавить эти ящики.

С отъездом этих ящиков - идентичная ситуация, только с минусом.

Проблема:

ПриЗаписи - не вариант, т.к. записывает каждый раз при открытии, изменении, сохранении
ПриИзменении(через транзитное поле) - ноль реакции, только после ручного ввода, а число пришедших ящиков считается автоматом, на основании суммы из табличной части.

Вопрос:

Подскажите, люди добрые, через какую функцию можно запустить запись, или с каким условием, чтобы по ОДНОМУ документу сохранялось лишь один раз.

Заранее спасибо)
stark
Проверяйте режим записи, проверяйте признак нового.
ozstriker
Цитата(stark @ 12.03.15, 10:18) необходимо зарегистрироваться для просмотра ссылки
Проверяйте режим записи, проверяйте признак нового.


А можно поточнее про режим записи?
sava1
Процедура ПриЗаписи()

     Если ЭтоНовый()
          // пишем в константу
     КонецЕсли
КонецПроцедуры
Petre
В "ПриЗаписи" это уже не новый.
sava1
Цитата(Petre @ 12.03.15, 13:44) необходимо зарегистрироваться для просмотра ссылки
В "ПриЗаписи" это уже не новый.

Это копи-паст. ПередЗаписью конечно
Petre
Ну а в ПередЗаписью саму запись можно отменить.

Вообще постановка задачи не правильная. Не знаю, какая преследуется цель, но уверен, что есть достаточно вариантов добиться ее другими методами.
ozstriker
Цитата(Petre @ 12.03.15, 15:16) необходимо зарегистрироваться для просмотра ссылки
Вообще постановка задачи не правильная. Не знаю, какая преследуется цель, но уверен, что есть достаточно вариантов добиться ее другими методами.


Постановка задачи, в плане - гонять это значение через константу? Или что именно Вы имели ввиду?
sava1
Цитата(Petre @ 12.03.15, 15:16) необходимо зарегистрироваться для просмотра ссылки
Ну а в ПередЗаписью саму запись можно отменить.

Цепляем переменную модуля ЕтоНовый.
ПередЗаписью - инициализируем ее =ЭтоНовый()
ПриЗаписи - тупо проверяем/записыванем-не записываем/
Petre
Цитата(sava1 @ 12.03.15, 16:01) необходимо зарегистрироваться для просмотра ссылки
Цепляем переменную модуля ЕтоНовый.

Тогда уж лучше ДополнительныеСвойства.
ozstriker
Цитата(Petre @ 12.03.15, 16:15) необходимо зарегистрироваться для просмотра ссылки
Тогда уж лучше ДополнительныеСвойства.


А в регистры и отчеты из доп. свойств? Пройдет?
Petre
Мы ведем речь о таком алгоритме:
В "ПередЗаписью":
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

а в "ПриЗаписи":
Если ДополнительныеСвойства.ЭтоНовый Тогда
    // пишем в константу
КонецЕсли;
ozstriker
Спасибо ВСЕМ за участие!

Проблема решилась. Таким образом.


Процедура ПередЗаписью()
Если ЭтотОбъект.ЭтоНовый() Тогда
.....
КонецЕсли;
КонецПроцедуры


Оказалось, что проблема была на поверхности и без ЭтотОбъект - проверка на новизну просто не происходит.
Petre
Цитата(ozstriker @ 13.03.15, 8:23) необходимо зарегистрироваться для просмотра ссылки
Оказалось, что проблема была на поверхности и без ЭтотОбъект - проверка на новизну просто не происходит.

В контексте модуля объекта нет разницы.
Ну и подумайте, что будет с константой, если вдруг по каким-то причинам запись будет отменена и пользователь откажется от второй попытки записать документ.
ozstriker
Цитата(Petre @ 13.03.15, 9:36) необходимо зарегистрироваться для просмотра ссылки
В контексте модуля объекта нет разницы.
Ну и подумайте, что будет с константой, если вдруг по каким-то причинам запись будет отменена и пользователь откажется от второй попытки записать документ.


Как ни странно, но без откровенного указания ЭтотОбъект - не ожило...Сам головой понимаю, что должно быть так, как Вы говорите, но все же.

Насчет второй части - согласен, особенно насчет отмены проведения. Но пока другого варианта решения задачи не вижу. Только гонять значение через статическую переменную....
sava1
Цитата(ozstriker @ 13.03.15, 9:41) необходимо зарегистрироваться для просмотра ссылки
Только гонять значение через статическую переменную..

А зачем тогда регистры ?
ozstriker
Цитата(sava1 @ 13.03.15, 10:48) необходимо зарегистрироваться для просмотра ссылки
А зачем тогда регистры ?


Ну вот вопрос сейчас и в теме СКД поднял, т.к. все это ради отчета только и делается.
Часть через регистры идет, а часть, которая выходит как "документонезависимая" от части - уже через транзитную константу
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.