Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RFpro.ru: 1С для программиста


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Тимошенко Дмитрий
Статус: Студент
Рейтинг: 340
∙ повысить рейтинг >>
М.Денис
Статус: 8-й класс
Рейтинг: 270
∙ повысить рейтинг >>
Владимир Лазурко
Статус: Профессионал
Рейтинг: 249
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Номер выпуска:1065
Дата выхода:06.08.2009, 11:05
Администратор рассылки:Владимир Лазурко, Профессионал
Подписчиков / экспертов:525 / 120
Вопросов / ответов:2 / 3

Вопрос № 170951: Здравствуйте, уважаемые эксперты. 1с Предприятие:8.1 Есть справочник физлица(содержит в себе 2 табличные части: УдостЛичности и ТранспортноеСредство). Необходимо с помощью запроса выбрать человека по введенным данным. Не удается получить доступ...


Вопрос № 170955: Здравствуйте! Помогите разобраться.. В 1С v7.7 Требуется создать двухуровневый справочник "Направления". На верхнем уровне(Группе) в к-ве наименования-номер поезда, который должен выбираться из справочника"НомПоезд", на уровне ...

Вопрос № 170951:

Здравствуйте, уважаемые эксперты. 1с Предприятие:8.1
Есть справочник физлица(содержит в себе 2 табличные части: УдостЛичности и ТранспортноеСредство).
Необходимо с помощью запроса выбрать человека по введенным данным. Не удается получить доступ к данным справочника и его табличным частям. В чем моя ошибка? И можно ли делать выборку с помощью запроса из табличной части справочника? См. приложение. Спасибо.

Отправлен: 31.07.2009, 15:14
Вопрос задал: Роман Андреевич, Посетитель
Всего ответов: 1
Страница вопроса >>


Отвечает М.Денис, 8-й класс :
Здравствуйте, Роман Андреевич.
Вот Вам упрощенный вариант Вашего отчета. Тем не менее здесь можно увидеть, что в качестве источника для запроса нужно брать не справочник ФизЛица, а две его табличные части (которые Вас интересуют) и на закладке Связи связать их по ссылке. Смотрите приложение.

Приложение:

-----
The important thing is not to stop questioning. Albert Einstein

Ответ отправил: М.Денис, 8-й класс
Ответ отправлен: 31.07.2009, 14:29

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 252804 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 170955:

    Здравствуйте!
    Помогите разобраться.. В 1С v7.7 Требуется создать двухуровневый справочник "Направления". На верхнем уровне(Группе) в к-ве наименования-номер поезда, который должен выбираться из справочника"НомПоезд", на уровне элементов-Город, из справочника "Города".
    Не получается реализовать выбор из справочника, все попытки назначить обязательному реквизиту справочника "Наименование" тип Функцией "НазначитьТип(); "(Справочник.Города) потерпели фиаско..Научите работать с обязательными реквизитами..

    Отправлен: 31.07.2009, 15:31
    Вопрос задал: Dem0lisher, Посетитель
    Всего ответов: 2
    Страница вопроса >>


    Отвечает Дмитрий Сташенко, Практикант :
    Здравствуйте, Dem0lisher.

    у вас не получится присвоить реквизиту справочника Наименование значение типа Справочник. реквизит Наименование - это строковой реквизит. Зато получится создать новый реквизит ПоездГород типа Справочник, в зависимости от уровня ему назначать тип Справочник.НомПоезд или Справочник.Города, и при его изменении устанавливать Наименование = ПоездГород.Наименование. И по нему же при необходимости можно осуществлять отбор. Или, если удобно так, создать два новых реквизита НомПоезда = СоздатьОбъект("Справочник.НомПоезд") и Город = СоздатьОбъект("Справочник.Города"), разрешать в зависимости от уровня изменение только одного из них, ну а дальше все точно также как и раньше.

    Ответ отправил: Дмитрий Сташенко, Практикант
    Ответ отправлен: 31.07.2009, 15:51

    Оценка ответа: 5
    Комментарий к оценке:
    Проблема решена, двигаюсь дальше в решении задач! Спасибо!

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 252806 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Шахрайчук Владимир Анатольевич, Специалист :
    Здравствуйте, Dem0lisher.
    Со всеми реквизитами нужно работать так же, как и во всех языках программирования, т.е. уважать тип переменной.
    Наименование - это всегда строка фиксированной длины, праводополненная пробелами. Длина наименования указывается в конфигураторе.
    Поэтому туда нужно ложить строку, а значение НомПоезд держать в реквизите НомПоезд типа Справочник.НомПоезд
    Можно автоматизировать присвоение номера поезда наименованию, например, так: в форме (элемента) на реквизит НомПоезд на закладке Дополнительно пишем Вызвать процедуру ПриВыбореНомПоезд()
    а в модуле
    Процедура ПриВыбореНомПоезд()
    Если ЭтоГруппа()=1 Тогда
    Наименование=СокрЛП(НомПоезд.Наименование);
    КонецЕсли;
    КонецПроцедуры
    Аналогично для элемента делаем города.
    В форме списка мы даже можем выводить колоночки НомПоезд, Город и не выводить колоночку Наименование, а можем выводить.
    Теперь о НазначитьТип()
    В базе можно хранить реквизиты неопределенного типа, на них, на каждый, отводится 22 байта в файле данных.
    Пусть у нас реквизит Ном неопределенного типа, тогда Ном.НазначитьТип("Справочник");Ном.НазначитьВид("НомПоезд") имеет смысл.
    Наименование же имеет тип Строка, поэтому ему сменить тип и назначить вид невозможно. На Наименование в базе отводится столько байт, сколько задано в конфигураторе Длина.
    Учитывая то, что на реквизиты неопределенного типа в базе тратится на 3 байта больше, а в модуле на 10 строк больше, рекоммендую их использовать только в том случае, когда без них нельзя обойтись (например, банковская выписка, расходныйкассовыйордер).

    Ответ отправил: Шахрайчук Владимир Анатольевич, Специалист
    Ответ отправлен: 31.07.2009, 16:33

    Оценка ответа: 5
    Комментарий к оценке:
    Проблема решена, но теперь предвзятое отношение к обязательным реквизитам от разработчиков..Больше не пользуюсь "кастрированным Наименованием", а создаю собственные реквизиты! =)

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 252808 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск >>
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.6 от 21.07.2009

    В избранное