Вопросы по курсу Чистова 8.3 #782857


#0 by Штурман
У Чистова есть книжка по 8.3 на 750 страниц. Возникли некоторые вопросы относительно кода и предложений в книге. 1. В книге часто пишется про поставить точку останова, но конкретно где ставить непонятно. Допустим, создали процедуру, в которой нету кода, где ставить точку останова, чтобы потом Вычислить выражение? 2. Есть справочник Номенклатура, в ней две подгруппы – Товары и Услуги, по книге сделали проверку, чтобы была проверка услуги в зависимости от установленной галки следующим кодом: Но если в группе Услуг у справочника поставить галку, вылазит ошибка: s017.radikal.ru/i435/1610/0c/512a64b92d68.jpg 3. При создании отчета почему-то невозможно вывести данные из-за неопределенной переменной: {Отчет.ПрайсЛист.Форма.ФормаОтчета.Форма(4,18)}: Переменная не определена (ТабДок)
#1 by Штурман
#2 by mehfk
ТабДок должен быть реквизитом формы, а не реквизитом объекта.
#3 by Mankubus
>>где ставить точку останова, чтобы потом Вычислить выражение? на строке со словом КонецПроцедуры
#4 by Mankubus
>>Но если в группе Услуг у справочника поставить галку, вылазит ошибка: Нажми на кнопку Подробно чтобы был полный текст ошибки
#5 by Штурман
Ошибка при выполнении обработчика - 'ОбработкаПроверкиЗаполнения' по причине: {Справочник.Номенклатура.МодульОбъекта}: Ошибка при вызове метода контекста (Удалить)         ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("ЕдИзм")); по причине: Несоответствие типов (параметр номер '1')
#6 by Штурман
ок, первый вопрос понятен :)
#7 by Mankubus
в массиве ПроверяемыеРеквизиты нету значения "ЕдИзм" В реквизите установлено значение Выдавать ошибку на проверке заполнения?
#8 by Штурман
сам весь код формы справчоника такой:
#9 by Штурман
Метод  «Свойство»  -  получает  значение  элемента  по  указанному  имени,  а  также  проверяет наличие свойства.      Но такая запись не очень хороша, т.к. признак «Услуга» - это реквизит справочника, а так как в нем свойство «Заполнять из данных заполнения = Истина», то если в «ДанныеЗаполнения» при отрабатывании процедуры будет найден ключ «Услуга», то система заполнит его автома- том, т.е. принудительно его устанавливать не надо. «Услуга» - название реквизита, который будет заполнен. «ДанныеЗаполнения.Родитель.Услуга» - значение, которым будет заполнен этот реквизит. Т.е. значение реквизита не устанавливается напрямую, а стандартному механизму передается инструкция  заполнить  значение  реквизита  «Услуга»  при  отрабатывании  процедуры  «Обра- боткаЗаполнения». Параметр «СтандартнаяОбратотка» - отвечает за работу стандартного механизма заполнения реквизитов. Если  «СтандартнаяОбратотка = Ложь», то ничего автоматом не заполнится, но принудительное заполнение сработает: Итого: К элементу структуры можно обратиться по его ключу: Данные заполнения можно как прочитать: А = ДанныеЗаполнения.Услуга так и записать в них значение: ДанныеЗаполнения.Услуга = Ложь В примере у реквизита «Единица измерения» если элемент – товар, то надо проверять на за- полнение, а если элемент – услуга, то заполнение не обязательно. Проверку надо проводить независимо от формы (на стороне сервера), т.е. вообще форму надо загружать по минимуму, а все проверки выполнять на стороне сервера. Модуль объекта – процедура «ОбработкаПроверкиЗаполнения» Отказ – признак успешности транзакции записи объекта в БД. Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Но данная процедура будет работать не только для элементов, но и для групп, что неправиль- но. Добавим код: Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Но при этом пользователь не будет проинформирован, почему ему не удалось записать эле- мент. Поэтому такой способ применяется для описания каких-либо сложных алгоритмов. Реализуем проверку при помощи стандартной обработки. Обратимся к коллекции «ПроверяемыеРеквизиты»  -  попытаемся  записать  услугу  «Доставка»  с  незаполненной единицей измерения. При этом у реквизита «ЕдИзм» свойство: «Проверка заполнения – Выдавать ошибку».
#10 by Dyspho
чо за книга
#11 by Dyspho
дайте ссылку на книгу
#12 by Штурман
Чистов П. Полная методичка к курсу 1С: Предприятие 8.2. Программирование
#13 by Dyspho
а говоришь 83
#14 by Штурман
косяк да, короче книга по 8.2, но все делаю на платформе 8.3 но не думаю, что ошибки из-за этого, это ж самые основы
#15 by Mankubus
При этом у реквизита «ЕдИзм» свойство: «Проверка заполнения – Выдавать ошибку». это сделал?
#16 by Штурман
конечно, это и есть: Здесь содержится список реквизитов, значение которых проверяется на заполнение. В процедуре если элемент справочника не группа и услуга, то найдем нужный элемент мас- сива и удалим его из проверяемых реквизитов. Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
#17 by Штурман
в общем из-за этой процедуры нельзя поставить галочку Услуга в справочнике Номенклатра, если элемент справочника принадлежит группе Услуга
#18 by Штурман
вот сам справочник: в группе Товары галка Услуга ставится, а в группе Услуги галка услуга не ставится
#19 by Mankubus
не верю. покажи скриншот со свойствами реквизита ЕдИзм
#20 by Штурман
#21 by Mankubus
а теперь перечитываем у реквизита «ЕдИзм» свойство: «Проверка заполнения – Выдавать ошибку».
#22 by Штурман
о, заработало, теперь спокойно можно галку ставить. Вот только трабла в том, что при создании нового элемента в группе Услуги эта галка автоматически не проставляется, вот код:
#23 by Dyspho
А, дак это же
#24 by Штурман
по книжке быстрее, к тому же нет траффика, чтобы видео с ютуба смотреть )
#25 by Dyspho
Я просто думал книжка новая
#26 by Lexey_
"Заполнять из данных заполнения"
#27 by Лефмихалыч
1. на слове КонецПроцедуры 2. ты не включил "выдавать ошибку" в свойствах реквизита ЕдИзм 3. реквизита формы ТабДок не существует, вот оно и не работает
#28 by Штурман
3. почему не существует? вот же картинка: реквизит есть
#29 by FIXXXL
не надо так писать в общем случае сначала Найти, потом проверка поиска, если найдено - удалить
#30 by Лефмихалыч
на картинке нет реквизита формы ТабДок. Там есть реквизит объекта, а это не одно и то же.
#31 by Лефмихалыч
если бы проверка заполнения была "выдавать ошибку", то реквизит в массиве бы гарантированно был и код бы выполнился успешно. Но проверка заполнения у ЕдИзм просто не включена.
#32 by Штурман
а как добавить реквизит формы ТабДок? куда?
#33 by cons74
не поверишь, но можно задать вопросы на форуме Чистова:
#34 by GROOVY
Как много нового я о себе узнаю...
#35 by FIXXXL
дык про то и речь я написал, падаван галку снял, пользователи ловят глюк
#36 by Лефмихалыч
на форму добавить в редакторе формы
#37 by Elysee
Павел, как пишутся 750 страниц? Нужна команда машинисток или доверяя только себе, закрываешься на кухне на 2 месяца?
#38 by GROOVY
Это скрибинг видеокурса. Делал слушатель.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С