Работаю в 8.3.5Только начинаю разбираться в платформе, до этого с 1С имел дело только как пользователь. Сейчас стоит задача написать свою небольшую конфу для нашего маленького предприятия. Накупил кучку книжек, сижу изучаю. Голова уже пухнет. Не могу своим мозгом понять как реализовать такой функционал:
Есть документ ЗаказНаряд в котором есть реквизит Комплектность с типом Поле ввода.Ясен пень, у документа есть форма с этим реквизитом.В форме документа, требуется вызывать кнопкой выбора (...) у этого поля, окно в котором можно отметить галочками значения которые по нажатию ОК в этом окне, попадут в это поле ввода.Сами значения в этом окне должны браться из наименований элементов справочника Подстановки, причем из элементов находящихся в определенной группе этого справочника.Поле ввода необходимо, что бы помимо того, что выберет пользователь, он мог в некоторых случаях дописать некоторые данные руками.
Прошу ткнуть носом как это сделать, ибо голова уже кипит...
Комплектность должна быть строка и не обязательно реквизит документа, это может быть просто элемент формы.
Еще у документа должна быть ТЧ как раз для хранения списка значений подстановок.
На обработчик начало выбора для комплектности организовать выбор из списка значений, в который помещены элементы из справочника подстановок.
После отметки нужных подстановок необходимо из помеченных элементов сформировать строку и поместить ее в комплектность и также записать их в ТЧ.
Касаемо дописки, мне кажется нужно сделать отдельный строковый реквизит "ДопКомплектность", и в нем уже дополнения писать и присоединять их к комплектности.
К сожалению не смог понять Ваш совет и сделал по своему.
Путем долгих мучений получилось добиться промежуточного результата.
Я написал функцию которая получает колонку "Наименование" справочника Подстановки, и вызвал ее в событии начала выбора в поле комплектности.
В результате стал выпадать список с нужными мне значениями.
Но как я писал выше, мне требуется вызывать окно, в котором можно отметить галочками нужные мне значения и в результате заполнять этими значениями поле Комплектность.
Тут у меня случился ступор, из которого я не могу выйти. Прошу подсказать как это сделать.
Потихоньку буду вникать в Ваш вариант реализации, ибо опыта ноль, не все понятно сразу.
А если просто с ходу опробовать Ваш код, то в режиме отладки по нажатии у поля кнопки выбора вызывается окно, там есть элементы справочника Подстановки, но в независимости от того, стоят отметки или нет, при нажатии "ОК" сначала ругается на :
ТЧ = Объект.КомплектностьДокумента;[/pre]
{Документ.ЗаказНаряд.Форма.ФормаДокумента1.Форма(83)}: Поле объекта не обнаружено (КомплектностьДокумента)
ТЧ = Объект.КомплектностьДокумента;
Но насколько я понимаю нужно просто поправить на:
ТЧ = Объект.Комплектность;[/pre]
Что я и сделал.
Но после этого уже ругается на:
ТЧ.Очистить();[/pre]
{Документ.ЗаказНаряд.Форма.ФормаДокумента1.Форма(84)}: Значение не является значением объектного типа (Очистить)
ТЧ.Очистить();
Насколько я понимаю, должно вызываться на стороне сервера.
Табличная часть нужна для сохранения списка выбранных значений в документе, другого варианта я просто не знаю.
Это ведь только первый этап - выбрать из списка, вам же нужно будет этими значениями пользоваться. При повторном открытии документа вам нужно будет учитывать, что пользователь выбрал ранее и восстановить при открытии списка пометки его элементов. Пользоваться строкой для этого очень неудобно.
В табличной части реквизит "Подстановка" - это не строка, это ссылка в справочник "Подстановки".