Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 20:40

В справочнике делаю проверку (булево) услуга истина или лож

Автор KISS_ARMY, 17 апр 2014, 12:58

0 Пользователей и 1 гость просматривают эту тему.

KISS_ARMY

Ребята я новичок в программировании учусь по видео урокам.
Вот собственно проблема, создал справочник номенклатура и хочу при добавлении в зависимости от группы (услуга или товар), допусти если услуга то галочка стояла бы услуга, а если товар то галочка не стояла бы услуга, делаю по видео урокам, там все галочки ставятся у меня нет. Галочка почему то не ставиться, на фото видно что за ошибку ругается.
Код следующий:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ДанныеЗаполнения = Неопределено Тогда
Возврат;
КонецЕсли;

Если ДанныеЗаполнения.Свойство ("Родитель") Тогда
ДанныеЗаполнения.Вставить ("Услуга", ДанныеЗаполнения.Родитель.Услуга);

КонецЕсли;


КонецПроцедуры

cska-fanat-kz

СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
ОбработкаЗаполнения (Filling)
Синтаксис:

ОбработкаЗаполнения(<ДанныеЗаполнения>, <ТекстЗаполнения>, <СтандартнаяОбработка>)
Параметры:

<ДанныеЗаполнения>

Тип: Произвольный.
Значение, которое используется как основание для заполнения.
Если обработчик вызван при выполнении метода Заполнить, параметр равен параметру <ДанныеЗаполнения> метода Заполнить.
При обработке заполнения во время ввода на основании параметр имеет значение основания.
При интерактивном вводе нового из формы списка параметр является структурой, элементы которой соответствуют тем параметрам отбора формы списка, у которых способ сравнения Равно или ВСписке с единственным элементом списка. Если таких элементов отбор списка не содержит, данный параметр равен Неопределено. Если параметр <СтандартнаяОбработка> по окончании работы обработчика равен Истина (установлен по умолчанию), система автоматически произведет заполнение одноименными элементами структуры.

Вам надо проверить параметр ДанныеЗаполнения на тип Структура. Примерно так:
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

KISS_ARMY

Цитата: cska-fanat-kz от 17 апр 2014, 13:06
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
ОбработкаЗаполнения (Filling)
Синтаксис:

ОбработкаЗаполнения(<ДанныеЗаполнения>, <ТекстЗаполнения>, <СтандартнаяОбработка>)
Параметры:

<ДанныеЗаполнения>
Прошу прощения, я всего лишь четвертый видео урок смотрю и для меня ваши слова кажутся космическими, может я когд не так написал, хочу заметить когда я ввожу в коде слово свойство и жму альт+пробел, он у меня не выводит слова и вставить что может быть?

Тип: Произвольный.
Значение, которое используется как основание для заполнения.
Если обработчик вызван при выполнении метода Заполнить, параметр равен параметру <ДанныеЗаполнения> метода Заполнить.
При обработке заполнения во время ввода на основании параметр имеет значение основания.
При интерактивном вводе нового из формы списка параметр является структурой, элементы которой соответствуют тем параметрам отбора формы списка, у которых способ сравнения Равно или ВСписке с единственным элементом списка. Если таких элементов отбор списка не содержит, данный параметр равен Неопределено. Если параметр <СтандартнаяОбработка> по окончании работы обработчика равен Истина (установлен по умолчанию), система автоматически произведет заполнение одноименными элементами структуры.

Вам надо проверить параметр ДанныеЗаполнения на тип Структура. Примерно так:
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
...
прошу прощения, но видео урок я просмотрел и проделал только четвертый, ваши слова мне кажутся космическими, может в коде где ошибка, хочу заметить при написании кода когда пишу первые три буквы слова свойства и вставить потом жму альт+пробел, он почему то не выводит мне эти слова в списке их там нет ?!

cska-fanat-kz

Контекстная подсказка выскакивает не всегда и это не всегда значит что такого метода нет.

У вас параметр ДанныеЗаполнения у обработчика события в зависимости от условий (см. приведенную справку)
может быть разных типов. В том числе и структурой, у которой как раз и есть метод Свойство(). А вот если НЕ структура, то вы и получаете логичную ошибку. Обычно в этом случае перед обращением к методу делают проверку на тип (см. приведенный пример).
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

KISS_ARMY

Цитата: cska-fanat-kz от 17 апр 2014, 14:19
Контекстная подсказка выскакивает не всегда и это не всегда значит что такого метода нет.

У вас параметр ДанныеЗаполнения у обработчика события в зависимости от условий (см. приведенную справку)
может быть разных типов. В том числе и структурой, у которой как раз и есть метод Свойство(). А вот если НЕ структура, то вы и получаете логичную ошибку. Обычно в этом случае перед обращением к методу делают проверку на тип (см. приведенный пример).
Простите абсолютно вас не понимаю, прочитал справки и вообще не понимаю о чем она... что мне надо делать не понятно :(

СветланаCC

Почему бы Вам не сделать по-другому? почему зацикливаетесь на данном примере?
Проще для Вас будет при записи элемента заполнить значение Услуги
Тазовод)

KISS_ARMY

Цитата: СветланаCC от 17 апр 2014, 15:12
Почему бы Вам не сделать по-другому? почему зацикливаетесь на данном примере?
Проще для Вас будет при записи элемента заполнить значение Услуги
Т.е. вы предлагаете установить значение заполнения истина, по умолчанию?
P/S/
Хочу заметить у меня знаний в 1с -10, прошу помощи более подробной. Я говорю я за 1С сижу второй день (4 часа всего)

СветланаCC

Цитата: KISS_ARMY от 17 апр 2014, 15:50
Цитата: СветланаCC от 17 апр 2014, 15:12
Почему бы Вам не сделать по-другому? почему зацикливаетесь на данном примере?
Проще для Вас будет при записи элемента заполнить значение Услуги
Т.е. вы предлагаете установить значение заполнения истина, по умолчанию?
нет, при записи элемента, устанавливать реквизиту услуга значение реквизита услуга родителя...
Тазовод)

KISS_ARMY

Цитата: СветланаCC от 17 апр 2014, 15:56
Цитата: KISS_ARMY от 17 апр 2014, 15:50
Цитата: СветланаCC от 17 апр 2014, 15:12
Почему бы Вам не сделать по-другому? почему зацикливаетесь на данном примере?
Проще для Вас будет при записи элемента заполнить значение Услуги
Т.е. вы предлагаете установить значение заполнения истина, по умолчанию?
нет, при записи элемента, устанавливать реквизиту услуга значение реквизита услуга родителя...
Я вас правильно понял, зайти процедуры и функции и выбрать там перед записью обьекта и там написать и там написать код реквизиты услуга родителя...?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск