Делаю форму подбора для документа. Почему-то при вытаскивании данных из тч в эту форму отбора кол-во номенклатуры передается, а сама номенклатура - нет. Обратно из формы в ТЧ документа так же передается кол-во, а номенклатура пустое поле. В чем может быть проблема? Связи у полей одинаковые СправочникСсылка.Номенклатура
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Это в форме накладной
Это в форме подбора
&НаКлиенте
Процедура ОткрытьПодбор(Команда)
Парам = Новый Структура;
Парам.Вставить("АдресВХ", ПоместитьТЧВВХ());
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаПодбора", Парам, ЭтаФорма);
КонецПроцедуры
&НаСервере
Функция ПоместитьТЧВВХ()
Возврат ПоместитьВоВременноеХранилище(Объект.Комплектующие.Выгрузить());
КонецФункции
&НаКлиенте
Процедура ОбработатьПодбор(АдресВХ) Экспорт
ОбработатьПодборНаСервере(АдресВХ);
КонецПроцедуры
&НаСервере
Процедура ОбработатьПодборНаСервере(АдресВХ)
Объект.Комплектующие.Загрузить(ПолучитьИзВременногоХранилища(АдресВХ));
КонецПроцедуры
ПоказатьЭто в форме подбора
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ВыбранныеТовары.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресВХ));
КонецПроцедуры
&НаСервере
Функция ЗавершитьПодборНаСервере()
Возврат ПоместитьВоВременноеХранилище(ВыбранныеТовары.Выгрузить());
КонецФункции
&НаКлиенте
Процедура ЗавершитьПодбор(Команда)
АдресВХ = ЗавершитьПодборНаСервере();
ВладелецФормы.ОбработатьПодбор(АдресВХ);
Закрыть();
КонецПроцедуры
Показать
(13) может тогда хотя бы напишешь конфигурацию , в которой нет Реквизита ЭтоГруппа у Номенклатуры?
А вообще - это стандартный реквизит и его ясно нужно смотреть именно в стандартных, если через конфигуратор.
Но в конструкторе запросов его прекрасно видно кстати...
А вообще - это стандартный реквизит и его ясно нужно смотреть именно в стандартных, если через конфигуратор.
Но в конструкторе запросов его прекрасно видно кстати...
Прикрепленные файлы:
(12)
Переменная не определена (ЭтоГруппа)
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
Стр = ВыбранныеТовары.Добавить();
Если ЭтоГруппа Тогда
Сообщить("Работает",);
КонецЕсли;
Стр.Наименование = ВыбраннаяСтрока;
Стр.Количество =Стр.Количество + 1;
КонецПроцедуры
ПоказатьПеременная не определена (ЭтоГруппа)
Вот 1С тебе и пишет об этом в сообщении!
зачем же сравнивать изначально то что Неопределено с Истиной?
Ты мог бы с таким же успехом написать -
Суть бы ошибки не поменялся... Откуда 1С знает чего ты там хочешь в этом месте?
зачем же сравнивать изначально то что Неопределено с Истиной?
Ты мог бы с таким же успехом написать -
Если ЯТакХочу Тогда
КонецЕсли;
Суть бы ошибки не поменялся... Откуда 1С знает чего ты там хочешь в этом месте?
(34)
Начни с изучения запросов - ВПЛОТНУЮ!
Пока не научишься ими пользоваться как таблицей умножения в любых вычислениях - можешь даже не дергаться дальше...
От простого к сложному никто не отменял....
Если не умеешь простого, никак не выполнишь ничего...
Почитай книжку сначала хоть какую, потренируйся просто получать любые данные из справочников сначала , потом уж трогай дальше...
Конечно умею
согрешил вот тут... ;-)))
Начни с изучения запросов - ВПЛОТНУЮ!
Пока не научишься ими пользоваться как таблицей умножения в любых вычислениях - можешь даже не дергаться дальше...
От простого к сложному никто не отменял....
Если не умеешь простого, никак не выполнишь ничего...
Почитай книжку сначала хоть какую, потренируйся просто получать любые данные из справочников сначала , потом уж трогай дальше...
(27)
Это еще больший бред, чем все предыдущее...
Сделай запрос, получи ОДИН экземпляр номенклатуры, выведи сообщение про его наименование (проверка чисто для тебя), и если выведет верно - проверяй на ЭтоГруппа
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Это еще больший бред, чем все предыдущее...
Сделай запрос, получи ОДИН экземпляр номенклатуры, выведи сообщение про его наименование (проверка чисто для тебя), и если выведет верно - проверяй на ЭтоГруппа
"Никогда такого не было ! И вот опять..." ? )))))
Поверь - тонкость клиента тут совершенно ни при чем - Тонкий клиент полнофункционален!
Что у тебя в первый раз? Покажи свой запрос к справочнику Номенклатура, в котором ты пытаешься получить какую-нибудь номенклатуру, которую хочешь проверить а не группа ли она.
Но чтобы ее проверить , ее сначала получи , ну чтоб хоть для себя, что у тебя все получилось...
(хотя и в самом заппросе вполне можно проверки ставить...)
Поверь - тонкость клиента тут совершенно ни при чем - Тонкий клиент полнофункционален!
Что у тебя в первый раз? Покажи свой запрос к справочнику Номенклатура, в котором ты пытаешься получить какую-нибудь номенклатуру, которую хочешь проверить а не группа ли она.
Но чтобы ее проверить , ее сначала получи , ну чтоб хоть для себя, что у тебя все получилось...
(хотя и в самом заппросе вполне можно проверки ставить...)
(38)
Вот что тут не так?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
ПоказатьВот что тут не так?
(43) А потому что нету у тебя ТУТ никакой проверки!
И ты в принципе не понимаешь КАК она должна быть устроена...
Тот чувак пусть тебе и объяснит почему у тебя ошибка....
Одно и то же можно решать различными способами - это раз.
Во вторых с помощью запроса - решение всегда более прозрачно.
И в третьих я не вижу всего твоего кода БЕЗ запроса, а в запрос ты не хочешь внести проверку, то ли не можешь....
Внеси проверку с запросом и сделаешь шаг к пониманию почему у тебя ТАМ ошибка...
И ты в принципе не понимаешь КАК она должна быть устроена...
Тот чувак пусть тебе и объяснит почему у тебя ошибка....
Одно и то же можно решать различными способами - это раз.
Во вторых с помощью запроса - решение всегда более прозрачно.
И в третьих я не вижу всего твоего кода БЕЗ запроса, а в запрос ты не хочешь внести проверку, то ли не можешь....
Внеси проверку с запросом и сделаешь шаг к пониманию почему у тебя ТАМ ошибка...
(45)
вот весь код
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
Стр = ВыбранныеТовары.Добавить();
Если ЭтоГруппа Тогда
Сообщить("Ошибка",);
КонецЕсли;
Стр.Наименование = ВыбраннаяСтрока;
Стр.Количество =Стр.Количество + 1;
КонецПроцедуры
Показатьвот весь код
(48)
Вот тут скорее всего неверно. Ибо строка обычно - это структура, и нельзя присваивать Наименованию Структуру (но это по правилам, у тебя не видно ЧТО спрятано в ВыбраннаяСтрока)
Если Это на самом деле структура (а это можно увидеть в отладке например), то
Должно быть
Стр.Наименование = ВыбраннаяСтрока.Номенклатура.Наименование;
И соответственно проверка ВыбраннаяСтрока.Номенклатура.ЭтоГруппа
Но это если только ВыбраннаяСтрока - это строка табличной части , к в которой есть Номенклатура
Стр.Наименование = ВыбраннаяСтрока;
Вот тут скорее всего неверно. Ибо строка обычно - это структура, и нельзя присваивать Наименованию Структуру (но это по правилам, у тебя не видно ЧТО спрятано в ВыбраннаяСтрока)
Если Это на самом деле структура (а это можно увидеть в отладке например), то
Должно быть
Стр.Наименование = ВыбраннаяСтрока.Номенклатура.Наименование;
И соответственно проверка ВыбраннаяСтрока.Номенклатура.ЭтоГруппа
Но это если только ВыбраннаяСтрока - это строка табличной части , к в которой есть Номенклатура
(47)
Правильно?
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.ЭтоГруппа) КАК ЭтоГруппа
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
ПоказатьПравильно?
Вот видишь ты уже начинаешь хоть что-то анализировать...
Про клиента - верно то что ЗАПРОСЫ НЕВОЗМОЖНЫ на Клиенте, но это совершенно не значит что они Невозможны при работе с Тонким Клиентом.
Запрос при этом должен выполняться в процедуре &НаСервере...
И именно потому что у тебя не хватает БАЗОВЫХ знаний ты никак не вникнешь в суть всей задачи.
Я тебя и прошу выполнить подсчет Групп запросом...
Когда у тебя ЭТО получится - все остальное само собой поймется....
Про клиента - верно то что ЗАПРОСЫ НЕВОЗМОЖНЫ на Клиенте, но это совершенно не значит что они Невозможны при работе с Тонким Клиентом.
Запрос при этом должен выполняться в процедуре &НаСервере...
И именно потому что у тебя не хватает БАЗОВЫХ знаний ты никак не вникнешь в суть всей задачи.
Я тебя и прошу выполнить подсчет Групп запросом...
Когда у тебя ЭТО получится - все остальное само собой поймется....
(74)
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
Стр = ВыбранныеТовары.Добавить();
Если ГруппаЭто(ВыбраннаяСтрока) Тогда
Сообщить("Ошибка",);
Иначе
Стр.Наименование = ВыбраннаяСтрока;
Стр.Количество =Стр.Количество + 1;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ГруппаЭто(СсылкаНоменклатуры)
Если СсылкаНоменклатуры.ЭтоГруппа Тогда
Возврат ИСТИНА;
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот