![]() |
|
Не идет обращение к Процедуре в Справочнике Номенклатура (доработка) УТ10.3 | ☑ | ||
---|---|---|---|---|
0
Shecurok
16.05.19
✎
14:18
|
Здравствуйте.
Начну с начала. Была платформа УТ10.3 (10.3.12.3) на конф. 8.1 со множеством доработок. Стали обновлять на 8.3 и УТ(10.3.52.2). Обновили всё нормально, без ошибок и пр. Стали возвращать доработки которые нужны. Одна из них заключается в следующем: В документе Реализация товаров и услуг, после создания документа при выборе Номенклатуры в раскрывающемся списке показан остаток товара на складе. Выяснил, что доработка написана в Справочнике Номенклатура в ФормеВыбора. Код для неё следующий: Перем ЗапросОстатки; Процедура ПриОткрытии() ЗапросОстатки = Новый Запрос; //ЗапросОстатки.Текст = //"ВЫБРАТЬ //| Рег.Номенклатура, //| Рег.КоличествоОстаток //|ИЗ //| РегистрНакопления.ТоварыНаСкладах.Остатки( //| , //| Номенклатура В (&Номенклатура)) КАК Рег"; ЗапросОстатки.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокВРезервеНаСкладе, | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе, | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК СвободныйОстаток |ПОМЕСТИТЬ ВТ_СвободныеОстатки |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | , | Номенклатура В (&Номенклатура) | И Склад = &Склад) КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( | , | Номенклатура В (&Номенклатура) | И Склад = &Склад) КАК ТоварыВРезервеНаСкладахОстатки | ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура | И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Рег.Номенклатура, | Рег.КоличествоОстаток КАК КоличествоОстаток, | ЕСТЬNULL(ВТ_СвободныеОстатки.ОстатокВРезервеНаСкладе, 0) КАК РезервОстаток, | ЕСТЬNULL(ВТ_СвободныеОстатки.ОстатокНаСкладе, 0) КАК ОстатокНаСкладе, | ЕСТЬNULL(ВТ_СвободныеОстатки.СвободныйОстаток, 0) КАК СвободныйОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В (&Номенклатура)) КАК Рег | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК ВТ_СвободныеОстатки | ПО Рег.Номенклатура = ВТ_СвободныеОстатки.Номенклатура"; (...) Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) Если Элемент.Колонки.Остаток.Видимость Тогда МассивНоменклатуры = Новый Массив; Для Каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл Если НЕ ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда МассивНоменклатуры.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка); КонецЕсли; КонецЦикла; ЗапросОстатки.УстановитьПараметр("Номенклатура", МассивНоменклатуры); ЗапросОстатки.УстановитьПараметр("Склад", Константы.Новая_ОсновнойСклад.Получить()); тзОстатки = ЗапросОстатки.Выполнить().Выгрузить(); Для Каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл Если НЕ ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда СтрТЗ = тзОстатки.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Номенклатура"); Если СтрТЗ <> Неопределено Тогда ОформлениеСтроки.Ячейки.Остаток.УстановитьТекст(СтрТЗ.КоличествоОстаток); ОформлениеСтроки.Ячейки.СвободныйОстаток.УстановитьТекст(СтрТЗ.СвободныйОстаток); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) была добавлена руками. Константы.Новая_ОсновнойСклад так же добавлена руками и также в обновленной базе есть. Также были добавлены поля на форму. Теперь смотрю отладчиком в старой версии. Ставлю ТочкуОстанова на процедуре Справочник... Она срабатывает, всё хорошо. В новой версии ТочкаОстанова не срабатывает, значит при открытии списка номенклатуры сюда он и не заходит. Есть идеи почему такое может быть? |
|||
1
hhhh
16.05.19
✎
14:22
|
(0) ну наверно забыли в событие добавить эту процедуру. Процедура по имени процедуры не вызывается в восьмерке, нужно событие.
|
|||
2
Shecurok
16.05.19
✎
14:27
|
(1) не могли бы подробнее описать как это сделать? ППросто в 1С работаю только 2 месяца, с программированием крайне плохо пока.
|
|||
3
Kondarat
16.05.19
✎
14:35
|
(2) Открыть свойства списка, найти событие ПриПолученииДанных, выбрать в это поле процедуру СправочникСписокПриПолученииДанных
|
|||
4
Гипервизор
16.05.19
✎
14:38
|
https://pastenow.ru/5K5RT
Сделайте по аналогии. |
|||
5
Shecurok
16.05.19
✎
14:39
|
Всё получилось. Надо было добавить строчку кода
ЭлементыФормы.СправочникСписок.УстановитьДействие("ПриПолученииДанных",Новый Действие("СправочникСписокПриПолученииДанных")); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |