Daseraf
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребят, помогите пожалуйста: Как переписать данный код для выполнения по команде (кнопка в форме) вместо ПриВыводеСтроки УТ10.3 Код: //RS: Функция ОстатокНаСкладе(Номенклатура) Экспорт ВидСклада = Склад.ВидСклада; Если ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда Текст = "ВЫБРАТЬ | ТоварыВНТТОстатки.КоличествоОстаток КАК Количество |ИЗ | РегистрНакопления.ТоварыВНТТ.Остатки(&Дата, ) КАК ТоварыВНТТОстатки |ГДЕ | ТоварыВНТТОстатки.Склад = &Склад | И ТоварыВНТТОстатки.Номенклатура = &Номенклатура"; ИначеЕсли ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, ) КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.Склад = &Склад | И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура"; ИначеЕсли ВидСклада = Перечисления.ВидыСкладов.Розничный Тогда Текст = "ВЫБРАТЬ | ТоварыВРозницеОстатки.КоличествоОстаток КАК Количество |ИЗ | РегистрНакопления.ТоварыВРознице.Остатки(&Дата, ) КАК ТоварыВРозницеОстатки |ГДЕ | ТоварыВРозницеОстатки.Склад = &Склад | И ТоварыВРозницеОстатки.Номенклатура = &Номенклатура"; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = Текст; Запрос.УстановитьПараметр("Дата",Дата); Запрос.УстановитьПараметр("Склад",Склад); Запрос.УстановитьПараметр("Номенклатура",Номенклатура); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Количество = ?(Выборка.Следующий(),Выборка.Количество,0); Возврат Количество; КонецФункции Функция ОстатокОрганизации(Номенклатура) Экспорт Текст = "ВЫБРАТЬ | ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество |ИЗ | РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, ) КАК ТоварыОрганизацийОстатки |ГДЕ | ТоварыОрганизацийОстатки.Организация = &Организация | И ТоварыОрганизацийОстатки.Номенклатура = &Номенклатура"; Запрос = Новый Запрос; Запрос.Текст = Текст; Запрос.УстановитьПараметр("Дата",Дата); Запрос.УстановитьПараметр("Организация",Организация); Запрос.УстановитьПараметр("Номенклатура",Номенклатура); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Количество = ?(Выборка.Следующий(),Выборка.Количество,0); Возврат Количество; КонецФункции Процедура ПоказатьОстатокСклада(КолонкиТабПоля, ЯчейкиСтрокиТабПоля, Номенклатура) Экспорт Если КолонкиТабПоля.ОстатокСклада.Видимость Тогда Если ТипЗнч(Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда Остаток = ОстатокНаСкладе(Номенклатура); ЯчейкиСтрокиТабПоля.ОстатокСклада.УстановитьТекст(Остаток); Иначе ЯчейкиСтрокиТабПоля.ОстатокСклада.УстановитьТекст(""); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ПоказатьОстатокОрганизации(КолонкиТабПоля, ЯчейкиСтрокиТабПоля, Номенклатура) Экспорт Если КолонкиТабПоля.ОстатокОрганизации.Видимость Тогда Если ТипЗнч(Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда Остаток = ОстатокОрганизации(Номенклатура); ЯчейкиСтрокиТабПоля.ОстатокОрганизации.УстановитьТекст(Остаток); Иначе ЯчейкиСтрокиТабПоля.ОстатокОрганизации.УстановитьТекст(""); КонецЕсли; КонецЕсли; КонецПроцедуры //RS. Далее в табличной части Товары формы документа добавляем две колонки - ОстатокСклада и ОстатокОрганизации. Желательно, чтобы два свойства колонки имели такие значения: Данные - пусто; ЭлементУправления = ПолеВвода; Затем заходим в событие ТЧ Товары - ПриВыводеСтроки и попадаем в процедуру формы ТоварыПриВыводеСтроки. В конце ее текста вставляем две наши строчки: //RS: ПоказатьОстатокСклада(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура); ПоказатьОстатокОрганизации(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура); //RS. |
|