Вопрос № 170951: Здравствуйте, уважаемые эксперты. 1с Предприятие:8.1 Есть справочник физлица(содержит в себе 2 табличные части: УдостЛичности и ТранспортноеСредство). Необходимо с помощью запроса выбрать человека по введенным данным. Не удается получить доступ...
Вопрос № 170955: Здравствуйте! Помогите разобраться.. В 1С v7.7 Требуется создать двухуровневый справочник "Направления". На верхнем уровне(Группе) в к-ве наименования-номер поезда, который должен выбираться из справочника"НомПоезд", на уровне ...
Вопрос № 170951:
Здравствуйте, уважаемые эксперты. 1с Предприятие:8.1 Есть справочник физлица(содержит в себе 2 табличные части: УдостЛичности и ТранспортноеСредство). Необходимо с помощью запроса выбрать человека по введенным данным. Не удается получить доступ к данным справочника и его табличным частям. В чем моя ошибка? И можно ли делать выборку с помощью запроса из табличной части справочника? См. приложение. Спасибо.
Отвечает М.Денис, 8-й класс :
Здравствуйте, Роман Андреевич. Вот Вам упрощенный вариант Вашего отчета. Тем не менее здесь можно увидеть, что в качестве источника для запроса нужно брать не справочник ФизЛица, а две его табличные части (которые Вас интересуют) и на закладке Связи связать их по ссылке. Смотрите приложение.
Приложение:
----- The important thing is not to stop questioning. Albert Einstein
Ответ отправил: М.Денис, 8-й класс
Ответ отправлен: 31.07.2009, 14:29
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252804
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 170955:
Здравствуйте! Помогите разобраться.. В 1С v7.7 Требуется создать двухуровневый справочник "Направления". На верхнем уровне(Группе) в к-ве наименования-номер поезда, который должен выбираться из справочника"НомПоезд", на уровне элементов-Город, из справочника "Города". Не получается реализовать выбор из справочника, все попытки назначить обязательному реквизиту справочника "Наименование" тип Функцией "НазначитьТип(); "(Справочник.Города) потерпели фиаско..Научите
работать с обязательными реквизитами..
Отвечает Дмитрий Сташенко, Практикант :
Здравствуйте, Dem0lisher.
у вас не получится присвоить реквизиту справочника Наименование значение типа Справочник. реквизит Наименование - это строковой реквизит. Зато получится создать новый реквизит ПоездГород типа Справочник, в зависимости от уровня ему назначать тип Справочник.НомПоезд или Справочник.Города, и при его изменении устанавливать Наименование = ПоездГород.Наименование. И по нему же при необходимости можно осуществлять отбор. Или, если удобно так, создать два новых реквизита НомПоезда
= СоздатьОбъект("Справочник.НомПоезд") и Город = СоздатьОбъект("Справочник.Города"), разрешать в зависимости от уровня изменение только одного из них, ну а дальше все точно также как и раньше.
Ответ отправил: Дмитрий Сташенко, Практикант
Ответ отправлен: 31.07.2009, 15:51
Оценка ответа: 5 Комментарий к оценке: Проблема решена, двигаюсь дальше в решении задач! Спасибо!
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252806
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Шахрайчук Владимир Анатольевич, Специалист :
Здравствуйте, Dem0lisher. Со всеми реквизитами нужно работать так же, как и во всех языках программирования, т.е. уважать тип переменной. Наименование - это всегда строка фиксированной длины, праводополненная пробелами. Длина наименования указывается в конфигураторе. Поэтому туда нужно ложить строку, а значение НомПоезд держать в реквизите НомПоезд типа Справочник.НомПоезд Можно автоматизировать присвоение номера поезда наименованию, например, так: в форме (элемента) на реквизит НомПоезд на закладке
Дополнительно пишем Вызвать процедуру ПриВыбореНомПоезд() а в модуле Процедура ПриВыбореНомПоезд() Если ЭтоГруппа()=1 Тогда Наименование=СокрЛП(НомПоезд.Наименование); КонецЕсли; КонецПроцедуры Аналогично для элемента делаем города. В форме списка мы даже можем выводить колоночки НомПоезд, Город и не выводить колоночку Наименование, а можем выводить. Теперь о НазначитьТип() В базе можно хранить реквизиты неопределенного типа, на них,
на каждый, отводится 22 байта в файле данных. Пусть у нас реквизит Ном неопределенного типа, тогда Ном.НазначитьТип("Справочник");Ном.НазначитьВид("НомПоезд") имеет смысл. Наименование же имеет тип Строка, поэтому ему сменить тип и назначить вид невозможно. На Наименование в базе отводится столько байт, сколько задано в конфигураторе Длина. Учитывая то, что на реквизиты неопределенного типа в базе тратится на 3 байта больше, а в модуле на 10 строк больше, рекоммендую их использовать
только в том случае, когда без них нельзя обойтись (например, банковская выписка, расходныйкассовыйордер).
Оценка ответа: 5 Комментарий к оценке: Проблема решена, но теперь предвзятое отношение к обязательным реквизитам от разработчиков..Больше не пользуюсь "кастрированным Наименованием", а создаю собственные реквизиты! =)
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252808
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск >>
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.