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