|
Установка данных класса СообщениеПользователю | ☑ | ||
---|---|---|---|---|
0
pro3ri
08.05.15
✎
13:04
|
Добрый день!
Был код в МО, перенес в общий модуль, не работает(не указывает на конкр строку ТЧ): // регистр ОстаткиТоваровЭталон Расход Для Каждого ТекСтрокаТовары Из Ссылка.Товары Цикл Движение = Движения.ОстаткиТоваровЭталон.ДобавитьРасход(); Движение.Период = Ссылка.Дата; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.Качество = ТекСтрокаТовары.Качество; Движение.Количество = ТекСтрокаТовары.Количество; КонецЦикла; Если Справочники.Пользователи.НайтиПоНаименованию((ПользователиИнформационнойБазы.ТекущийПользователь().Имя)).КонтролироватьОстаток Тогда Движения.ОстаткиТоваровЭталон.Записать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиТоваровЭталонОстатки.Номенклатура, | СУММА(ОстаткиТоваровЭталонОстатки.КоличествоОстаток) КАК КоличествоОстаток, | ОстаткиТоваровЭталонОстатки.Качество, | Док.НомерСтроки |ИЗ | РегистрНакопления.ОстаткиТоваровЭталон.Остатки( | &Момент, | (Номенклатура, Качество) В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | РеализацияТоваровТовары.Номенклатура, | РеализацияТоваровТовары.Качество | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка)) КАК ОстаткиТоваровЭталонОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МАКСИМУМ(РеализацияТоваровТовары.НомерСтроки) КАК НомерСтроки, | РеализацияТоваровТовары.Номенклатура КАК Номенклатура | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка | | СГРУППИРОВАТЬ ПО | РеализацияТоваровТовары.Номенклатура) КАК Док | ПО ОстаткиТоваровЭталонОстатки.Номенклатура = Док.Номенклатура |ГДЕ | ОстаткиТоваровЭталонОстатки.КоличествоОстаток < 0 | |СГРУППИРОВАТЬ ПО | ОстаткиТоваровЭталонОстатки.Номенклатура, | ОстаткиТоваровЭталонОстатки.Качество, | Док.НомерСтроки"; Граница = Новый Граница(Ссылка.МоментВремени(),ВидГраницы.Включая); Запрос.УстановитьПараметр("Момент", Граница); Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Отказ = Истина; Выборка = РезультатЗапроса.Выбрать(); Сообщение = Новый СообщениеПользователю; Пока Выборка.Следующий() Цикл Сообщение.Текст = "Не хватает товара в количестве " +(- Выборка.КоличествоОстаток); Сообщение.Поле = "Ссылка.Товары["+(Выборка.НомерСтроки-1)+"].Количество"; Сообщение.УстановитьДанные(Ссылка); Сообщение.Сообщить(); КонецЦикла; КонецЕсли; КонецЕсли; Как побороть? |
|||
1
asady
08.05.15
✎
13:23
|
(0) Попробуй
Сообщение.Поле = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", Выборка.НомерСтроки, "Количество"); , |
|||
2
asady
08.05.15
✎
13:24
|
(1)+ если нет такой функции вот ее код
Функция ПутьКТабличнойЧасти(Знач ИмяТабличнойЧасти, Знач НомерСтроки, Знач ИмяРеквизита) Экспорт Возврат ИмяТабличнойЧасти + "[" + Формат(НомерСтроки - 1, "ЧН=0; ЧГ=0") + "]." + ИмяРеквизита; КонецФункции |
|||
3
pro3ri
08.05.15
✎
13:27
|
(1) добил сам, может не супер оптимально, но ворк:
Процедура РеализацияТоваров(Движения, ЭтотОбъект, ПровестиБезКонтроля = Ложь) Экспорт // регистр ОстаткиТоваровЭталон Расход Для Каждого ТекСтрокаТовары Из ЭтотОбъект.Товары Цикл Движение = Движения.ОстаткиТоваровЭталон.ДобавитьРасход(); Движение.Период = ЭтотОбъект.Дата; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.Качество = ТекСтрокаТовары.Качество; Движение.Количество = ТекСтрокаТовары.Количество; КонецЦикла; Если Справочники.Пользователи.НайтиПоНаименованию((ПользователиИнформационнойБазы.ТекущийПользователь().Имя)).КонтролироватьОстаток Тогда Движения.ОстаткиТоваровЭталон.Записать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиТоваровЭталонОстатки.Номенклатура, | СУММА(ОстаткиТоваровЭталонОстатки.КоличествоОстаток) КАК КоличествоОстаток, | ОстаткиТоваровЭталонОстатки.Качество, | Док.НомерСтроки |ИЗ | РегистрНакопления.ОстаткиТоваровЭталон.Остатки( | &Момент, | (Номенклатура, Качество) В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | РеализацияТоваровТовары.Номенклатура, | РеализацияТоваровТовары.Качество | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка)) КАК ОстаткиТоваровЭталонОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МАКСИМУМ(РеализацияТоваровТовары.НомерСтроки) КАК НомерСтроки, | РеализацияТоваровТовары.Номенклатура КАК Номенклатура | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка | | СГРУППИРОВАТЬ ПО | РеализацияТоваровТовары.Номенклатура) КАК Док | ПО ОстаткиТоваровЭталонОстатки.Номенклатура = Док.Номенклатура |ГДЕ | ОстаткиТоваровЭталонОстатки.КоличествоОстаток < 0 | |СГРУППИРОВАТЬ ПО | ОстаткиТоваровЭталонОстатки.Номенклатура, | ОстаткиТоваровЭталонОстатки.Качество, | Док.НомерСтроки"; Граница = Новый Граница(ЭтотОбъект.МоментВремени(),ВидГраницы.Включая); Запрос.УстановитьПараметр("Момент", Граница); Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Отказ = Истина; Выборка = РезультатЗапроса.Выбрать(); Сообщение = Новый СообщениеПользователю; Пока Выборка.Следующий() Цикл Сообщение.Текст = "Не хватает товара в количестве " +(- Выборка.КоличествоОстаток); Сообщение.Поле = "Товары["+(Выборка.НомерСтроки-1)+"].Количество"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
4
pro3ri
08.05.15
✎
13:42
|
(2) спс все равно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |