#0
by Штурман
У Чистова есть книжка по 8.3 на 750 страниц. Возникли некоторые вопросы относительно кода и предложений в книге. 1. В книге часто пишется про поставить точку останова, но конкретно где ставить непонятно. Допустим, создали процедуру, в которой нету кода, где ставить точку останова, чтобы потом Вычислить выражение? 2. Есть справочник Номенклатура, в ней две подгруппы – Товары и Услуги, по книге сделали проверку, чтобы была проверка услуги в зависимости от установленной галки следующим кодом: Но если в группе Услуг у справочника поставить галку, вылазит ошибка: s017.radikal.ru/i435/1610/0c/512a64b92d68.jpg 3. При создании отчета почему-то невозможно вывести данные из-за неопределенной переменной: {Отчет.ПрайсЛист.Форма.ФормаОтчета.Форма(4,18)}: Переменная не определена (ТабДок)
#3
by Mankubus
>>где ставить точку останова, чтобы потом Вычислить выражение? на строке со словом КонецПроцедуры
#4
by Mankubus
>>Но если в группе Услуг у справочника поставить галку, вылазит ошибка: Нажми на кнопку Подробно чтобы был полный текст ошибки
#5
by Штурман
Ошибка при выполнении обработчика - 'ОбработкаПроверкиЗаполнения' по причине: {Справочник.Номенклатура.МодульОбъекта}: Ошибка при вызове метода контекста (Удалить) ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("ЕдИзм")); по причине: Несоответствие типов (параметр номер '1')
#7
by Mankubus
в массиве ПроверяемыеРеквизиты нету значения "ЕдИзм" В реквизите установлено значение Выдавать ошибку на проверке заполнения?
#9
by Штурман
Метод «Свойство» - получает значение элемента по указанному имени, а также проверяет наличие свойства. Но такая запись не очень хороша, т.к. признак «Услуга» - это реквизит справочника, а так как в нем свойство «Заполнять из данных заполнения = Истина», то если в «ДанныеЗаполнения» при отрабатывании процедуры будет найден ключ «Услуга», то система заполнит его автома- том, т.е. принудительно его устанавливать не надо. «Услуга» - название реквизита, который будет заполнен. «ДанныеЗаполнения.Родитель.Услуга» - значение, которым будет заполнен этот реквизит. Т.е. значение реквизита не устанавливается напрямую, а стандартному механизму передается инструкция заполнить значение реквизита «Услуга» при отрабатывании процедуры «Обра- боткаЗаполнения». Параметр «СтандартнаяОбратотка» - отвечает за работу стандартного механизма заполнения реквизитов. Если «СтандартнаяОбратотка = Ложь», то ничего автоматом не заполнится, но принудительное заполнение сработает: Итого: К элементу структуры можно обратиться по его ключу: Данные заполнения можно как прочитать: А = ДанныеЗаполнения.Услуга так и записать в них значение: ДанныеЗаполнения.Услуга = Ложь В примере у реквизита «Единица измерения» если элемент – товар, то надо проверять на за- полнение, а если элемент – услуга, то заполнение не обязательно. Проверку надо проводить независимо от формы (на стороне сервера), т.е. вообще форму надо загружать по минимуму, а все проверки выполнять на стороне сервера. Модуль объекта – процедура «ОбработкаПроверкиЗаполнения» Отказ – признак успешности транзакции записи объекта в БД. Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Но данная процедура будет работать не только для элементов, но и для групп, что неправиль- но. Добавим код: Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Но при этом пользователь не будет проинформирован, почему ему не удалось записать эле- мент. Поэтому такой способ применяется для описания каких-либо сложных алгоритмов. Реализуем проверку при помощи стандартной обработки. Обратимся к коллекции «ПроверяемыеРеквизиты» - попытаемся записать услугу «Доставка» с незаполненной единицей измерения. При этом у реквизита «ЕдИзм» свойство: «Проверка заполнения – Выдавать ошибку».
#14
by Штурман
косяк да, короче книга по 8.2, но все делаю на платформе 8.3 но не думаю, что ошибки из-за этого, это ж самые основы
#15
by Mankubus
При этом у реквизита «ЕдИзм» свойство: «Проверка заполнения – Выдавать ошибку». это сделал?
#16
by Штурман
конечно, это и есть: Здесь содержится список реквизитов, значение которых проверяется на заполнение. В процедуре если элемент справочника не группа и услуга, то найдем нужный элемент мас- сива и удалим его из проверяемых реквизитов. Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
#17
by Штурман
в общем из-за этой процедуры нельзя поставить галочку Услуга в справочнике Номенклатра, если элемент справочника принадлежит группе Услуга
#18
by Штурман
вот сам справочник: в группе Товары галка Услуга ставится, а в группе Услуги галка услуга не ставится
#21
by Mankubus
а теперь перечитываем у реквизита «ЕдИзм» свойство: «Проверка заполнения – Выдавать ошибку».
#22
by Штурман
о, заработало, теперь спокойно можно галку ставить. Вот только трабла в том, что при создании нового элемента в группе Услуги эта галка автоматически не проставляется, вот код:
#27
by Лефмихалыч
1. на слове КонецПроцедуры 2. ты не включил "выдавать ошибку" в свойствах реквизита ЕдИзм 3. реквизита формы ТабДок не существует, вот оно и не работает
#29
by FIXXXL
не надо так писать в общем случае сначала Найти, потом проверка поиска, если найдено - удалить
#30
by Лефмихалыч
на картинке нет реквизита формы ТабДок. Там есть реквизит объекта, а это не одно и то же.
#31
by Лефмихалыч
если бы проверка заполнения была "выдавать ошибку", то реквизит в массиве бы гарантированно был и код бы выполнился успешно. Но проверка заполнения у ЕдИзм просто не включена.
#37
by Elysee
Павел, как пишутся 750 страниц? Нужна команда машинисток или доверяя только себе, закрываешься на кухне на 2 месяца?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
В этой группе 1С
- Изменение начальной даты обмена документами в узле обмена между УТ10.3 и БП2.0?
- Как отключить пересчет суммы
- Документооборот подвисает при открытии
- Не работает микрофон в Skype после установки Kaspersky
- УТ 10 Программно добавить свойство номенклатуры в отчет продажи
- Конфликт блокировок при выполнении транзакции
- Mozilla не загружается сайт mail.ru
- Не сохраняются изменения командного интерфейса основного раздела в конфигураторе
- 1С 8.3. Запуск файловой базы с запретом фоновых заданий
- СКД: ДанныеРасшифровки в модуле отчета
- 1с Бух не проводит несколько документов
- Вывести в построителе отчета дополнительное поле
- БП 3.0. Как увидеть контактную информацию по контрагенту?
- ут 10.3 РИБ чеки делают движения по регистру и попадают в Центральный узел?
- СКД как изменить заголовок ИТОГО
- Розница 2.2 Взаиморасчеты с контрагентами
- Код работает только в отладчике, в режиме 1С предприятия - нет
- Перенос данных из зуп 2.5 в зик гу 3.0
- Принтер этикеток Godex G300 и УТ 10.3
- Зависание SQL-сервера при при прометке на удаление элементов справочников