Всем доброго времени суток!
Прошу сильно не пинать!
Есть штатная процедура в форме списка :
В ней нужно сделать дозаполнение некоторых данных на форме.
Если делаю вот так:
Так все работает прекрасно.
Но теперь нужно процедуру РММ_ЗаполнитьСебестоимость(Номенклатура) вынести в общий модуль, так как ее еще в нескольких формах нужно использовать.
Как правильно ее вынести?
Прошу сильно не пинать!
Есть штатная процедура в форме списка :
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодборТоваровКлиент.ПриАктивизацииСтрокиСпискаНоменклатуры(ЭтаФорма);
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
ПоказатьВ ней нужно сделать дозаполнение некоторых данных на форме.
Если делаю вот так:
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодборТоваровКлиент.ПриАктивизацииСтрокиСпискаНоменклатуры(ЭтаФорма);
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
//МояВставка
Если Элемент.ТекущиеДанные <> Неопределено Тогда
РММ_ЗаполнитьСебестоимость(Элемент.ТекущиеДанные.Ссылка);
Иначе
ЭтаФорма.ТаблицаСебестоимости.Очистить();
КонецЕсли;
//МояВставка
КонецПроцедуры
&НаСервере
Процедура РММ_ЗаполнитьСебестоимость(Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| СебестоимостьТоваровОстатки.КоличествоОстаток КАК Количество,
| ВЫБОР
| КОГДА ЕСТЬNULL(СебестоимостьТоваровОстатки.КоличествоОстаток, 0) = 0
| ТОГДА ЕСТЬNULL(СебестоимостьТоваровОстатки.СтоимостьОстаток, 0)
| ИНАЧЕ ЕСТЬNULL(СебестоимостьТоваровОстатки.СтоимостьОстаток + СебестоимостьТоваровОстатки.ДопРасходыОстаток, 0) / СебестоимостьТоваровОстатки.КоличествоОстаток
| КОНЕЦ КАК Цена,
| СебестоимостьТоваровОстатки.СтоимостьОстаток КАК Сумма,
| СебестоимостьТоваровОстатки.ДопРасходыОстаток КАК ДопРасходы,
| СебестоимостьТоваровОстатки.СтоимостьОстаток + СебестоимостьТоваровОстатки.ДопРасходыОстаток КАК Себестоимость,
| СебестоимостьТоваровОстатки.Партия.Дата КАК Дата,
| СебестоимостьТоваровОстатки.Партия КАК ДокОприходования
|ИЗ
| РегистрНакопления.СебестоимостьТоваров.Остатки(
| ,
| АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
| И РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.СобственныеТоварыВПути)) КАК СебестоимостьТоваровОстатки
|
|УПОРЯДОЧИТЬ ПО
| Дата УБЫВ";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
ТЗ = Запрос.Выполнить().Выгрузить();
ЭтаФорма.ТаблицаСебестоимости.Очистить();
ЭтаФорма.ТаблицаСебестоимости.Загрузить(ТЗ)
КонецПроцедуры
ПоказатьТак все работает прекрасно.
Но теперь нужно процедуру РММ_ЗаполнитьСебестоимость(Номенклатура) вынести в общий модуль, так как ее еще в нескольких формах нужно использовать.
Как правильно ее вынести?
По теме из базы знаний
- Сохранение настроек колонок, добавленных на форму программно
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- "Меньше копипаста!", или как Вася универсальную процедуру писал
- Как сдать экзамен 1С:Специалист по платформе?
- Доработайте это "немедленно", или как уменьшить доработки конфигурации
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Лушче не выполнять серверные вызовы в ПриАктвизации строки.
Корректнее будет в ПриАктвизации подключать обработчик ожидания, и уже в обработчике ожидания выполнять нужные процедуры для той строки, которая будет текущей в данный момент.
Так все работает прекрасно.
Лушче не выполнять серверные вызовы в ПриАктвизации строки.
Корректнее будет в ПриАктвизации подключать обработчик ожидания, и уже в обработчике ожидания выполнять нужные процедуры для той строки, которая будет текущей в данный момент.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот