Доброго времени суток, друзья! Совсем недавно изучаю сферу программирования 1С, на стажировке дали задание "перегрузка документа". Нашел нужный мне код для версии 7.7, однако условием моей задачи является написание кода на 8.х версии. Половину кода адаптировал, на второй половине встрял. Прикрепляю как сурс, так и свою обработку. Ругается на конец процедуры выгрузки: "объект не является типом (вид)". Пробовал изменить тип значения поля ввода на "документы" - не помогло. Подскажете?
Прикрепленные файлы:
Work_1.ert
task1.epf
По теме из базы знаний
- Подсистема ViewValues (просмотр "табличных" объектов). Версии для 1С:Предприятие-8.x и для 1С:Предприятие-7.7
- Основы реализации подборов в 1С 8.2 для начинающих
- Алкогольная декларация для 1С 8.1, 8.2, 8.3 (1, 2, 3, 4, 5, 6, 7, 8 формы) УТ10.2/10.3, УТ11, УПП, КА, БП2.0/3.0, БП КОРП, Розница 1.0/2.1, Далион, Астор, УТАП и др. с подписью и шифрованием, редакция 2.3
- Универсальные инструменты 1С
- Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если ПолеВвода1=0 Тогда
Если НЕ ЗначениеЗАполено(ПолеВвода1) Тогда
В 2с8. стандартные реквизиты можно посмотреть, если в конфигурации нажать правой кнопкой на документ. Там: Дата, Номер, но не ДатаДок, НомерДок.
Вид() нет в с18, там ТипЗНЧ().
Работа с метаданными также отличается. Если после постановки . и нажатии ctr+пробел не выскакивает "подсказка", то вы что-то не так вводите.
Простите, но детальнее код смотреть не хочется. Вы лучше скидывайте на форум куски кода и ошибки, тогда вам помогут
Хорошо, спасибо.
Немного отрекдактировал код. Теперь выглядит следующим образом:
Ругается на две последние строчки, якобы такого метода нет для этого класса. Повторюсь, в ПолеВвода1 юзер должен выбрать абсолютно любой документ из базы данных. Соответственно, мне нужно достать номер, дату и тип документа, который выбран в этом поле. Пробовал в инициализации указывать
В этом случае ругается при запуске на несоответствие типов, хотя поле изначально пустое
Немного отрекдактировал код. Теперь выглядит следующим образом:
СЗ=Новый СписокЗначений;
СЗ.Добавить(ЭлементыФормы.ПолеВвода1.ТипЗначения ,"Вид");
СЗ.Добавить(ЭлементыФормы.ПолеВвода1.Номер ,"Номер");
СЗ.Добавить(Элементыформы.ПолеВвода1.Дата ,"Дата");
Ругается на две последние строчки, якобы такого метода нет для этого класса. Повторюсь, в ПолеВвода1 юзер должен выбрать абсолютно любой документ из базы данных. Соответственно, мне нужно достать номер, дату и тип документа, который выбран в этом поле. Пробовал в инициализации указывать
//ЭлементыФормы.ПолеВвода1.ТипЗначения = Документы;
В этом случае ругается при запуске на несоответствие типов, хотя поле изначально пустое
(4) вы внимательно посмотрите, что я писал:
ТипЗНЧ()
Т.е. должно быть:
Только если посмотреть логику задачи, то возможно тут по другому нужно писать.
Если на выходите получить только, например "ПоступлениеМЦ", тогда через метаданные().Вид - уточните в поисковике в гугле
ТипЗНЧ()
Т.е. должно быть:
ТипЗНЧ(ЭлементыФормы.ПолеВвода1)
Только если посмотреть логику задачи, то возможно тут по другому нужно писать.
Если на выходите получить только, например "ПоступлениеМЦ", тогда через метаданные().Вид - уточните в поисковике в гугле
(6) да, только не ЭлементыФормы, а ЭтаФорма. Нам нужно обращаться к реквизитам формы, или же Объект, - реквизитам объекта, а не к элементам формы. У вас, если это 1с8.2, то достаточно просто ПолеВвода1.Номер писать, и ПолеВвода1.Дата.
ЭлементыФормы - это обращение к кнопкам будет идти, к тому, что нарисованно
ЭлементыФормы - это обращение к кнопкам будет идти, к тому, что нарисованно
У меня версия 1.3, я опечатался, извиняюсь.
Теперь вот так:
Ошибка следующая:
Теперь вот так:
СЗ=Новый СписокЗначений;
СЗ.Добавить(ТипЗНЧ(ЭтаФорма.ПолеВвода1) ,"Вид");
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
СЗ.Добавить(ПолеВвода1.Дата ,"Дата");
Ошибка следующая:
{ВнешняяОбработка.task1.Форма.Форма_Перегрузка.Форма(42)}: Значение не является значением объектного типа (Номер)
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
Я, кажется, потихоньку двигаюсь к цели. Все-таки мне удалось установить тип значения. Я просто удалил поле и создал его заново, однако сразу после того, как я разместил его на форме. мне удалось выбрать для него "Тип Значения" в свойствах. Из всего предложенного выбрал "ДокументСсылка".
Однако теперь у меня не заполняется само поле: список выбора заполнен следующим образом:
Боюсь, что использую неправильный тип данных. Также полагаю, что если решится проблема тут, то дальше все будет проще
Однако теперь у меня не заполняется само поле: список выбора заполнен следующим образом:
Для каждого Документ из Метаданные.Документы цикл
ЭлементыФормы.ПолеВвода1.СписокВыбора.Добавить(Документ.Имя, Документ.Имя);
КонецЦикла;
Боюсь, что использую неправильный тип данных. Также полагаю, что если решится проблема тут, то дальше все будет проще
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот