Дополнительные реквизиты документов и справочников



Программное создание доп. реквизитов

Попросили в V8 сделать отчет «Сообщение о ввозе»на основе док-та «ГТД по импорту». При анализе задания, выяснилось, что в БД(Бухгалтерия) нет информации, требуемой в отчет.
— Способ доставки корреспонденции
— Код ТН ВЭД ТС
— Категория
— Кол-во листов
первая мысль была снимать с поддержки и править конфигурацию, но потом пришла «светлая мысля» делать на доп. реквизитах докуметов и справочников. При первоначальной настройки отчета создаю доп реквизиты документа «ГТД по импорту»:
1.Способ доставки
2.Кол-во листов
3.Номер договора (по требованию заказчика)
4.Дата договора (по требованию заказчика — ему удобно, чтобы договор «сидел» в документе)
и реквизиты номенклатуры
1.Категория
2.Код ТН ВЭД ТС
Всё. Далее пользователь заполняет реквизиты, а вывести форму — дело техники.

Подробности программной работы с доп.реквизитами:
форма настройки.
При открытии Читаю ХранилищеОбщихНастроек, если неопределено
Заполняю поля формы с названиями доп. реквизитов

ПараметрыРаботы = ХранилищеОбщихНастроек.Загрузить(«ГЧ.СообщениеОВвозе»,»Параметры»);
Если ПараметрыРаботы <> Неопределено Тогда
ПараметрыРаботы.Свойство(«АкредитованныйКонтрагент»,АкредитованныйКонтрагент);
ПараметрыРаботы.Свойство(«НазваниеДопСвойстваСпособДоставки»,НазваниеДопСвойстваСпособДоставки);
и т.д.

Если Не ЗначениеЗаполнено(НазваниеДопСвойстваСпособДоставки) Тогда
НазваниеДопСвойстваСпособДоставки = «1.Способ доставки»;
КонецЕсли;
и т.д

Перед закрытием формы настройки, создаю структуру, записываю в неё названия полей(на случай если пользователь изменил название поля) сохраняю а ХранилищеОбщихНастроек

ПараметрыРаботы = Новый Структура;
ПараметрыРаботы.Вставить(«АкредитованныйКонтрагент»,АкредитованныйКонтрагент);
ПараметрыРаботы.Вставить(«НазваниеДопСвойстваСпособДоставки»,НазваниеДопСвойстваСпособДоставки);
и т.д

Далее если доп реквизиты ещё не созданы (первый запуск) создаём

Если ЗначениеЗаполнено(НазваниеДопСвойстваКатегория) Тогда
я = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НазваниеДопСвойстваКатегория);
Если я.Пустая() Тогда
я = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
я.Наименование = НазваниеДопСвойстваКатегория;
я.ТипЗначения = Новый ОписаниеТипов(«Строка»,Новый КвалификаторыСтроки(20));
я.НазначениеСвойства = ПланывидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
я.Записать();
Записано = Истина;
КонецЕсли;
Иначе
Сообщить(«Заполните «»Название доп. свойства «»Категория»» «» «);
ВсёЗаполнено = Ложь;
КонецЕсли;

27 Comments

  1. KillHunter

    а где вопрос ?

    Reply
  2. alexandr1972_1

    (1) Это не вопрос, а публикация.

    Reply
  3. Константин С.
    Дополнительные реквизиты документов и справочников

    статья из серии «Учите мат.часть».

    И не понятно, смысл городить обработку, если они создаются одноразого)))

    Reply
  4. Els11

    Не совсем понял. Работаю с УПП. В УПП есть кнопка «Свойства». Описанный функционал, это есть что то взамен кнопке «Свойства» в УПП ? В Бухгалтерии нет кнопок «Свойства»? Или в описанном функционале заложена какая то другая мысль? Хотелось бы тогда , чтобы это отличие в описании было описано (простите за тавтологию). Сначала хотел плюсануть, потом задумался не то же самое ли это.

    Reply
  5. 4ur

    если создавать их одноразово, то возможно большой необходимости в программном создании нет, хотя понять принцип — уже достаточно хорошо. Передо мной как раз стоит задача вытягивать в печатную форму такие доп. реквизиты, может кто подскажет, где по этому поводу можно почерпнуть информацию…

    Reply
  6. PanKir

    (0)

    0. а зачем снимать с поддержки? править можно и с поддержкой, просто труднее потом будет обновляться (точнее дольше, так как надо всё проверять внимательней)…

    1. никакого оформления статьи…

    2. полностью согласен с (4) — есть свойства документов, там можно всё ОДИН раз прописать и хоть каждый день перепечатывать эти «Сведения о ввозе», при этом не заполнять доп. реквизиты каждый раз…

    З.Ы. минус ставить — совесть не позволит (как никак всё таки автор старался, писал статью), плюс — здравый смысл… 🙂

    Reply
  7. PanKir

    (5) — я стараюсь все доп. реквизиты, которые хочет видеть начальство в базе, прописывать через свойства объектов. Насколько я понимаю такой справочник и соответствующий регистр сведений должен быть во всех конфигурациях 1С…

    Reply
  8. kit

    Доп. реквизиты дают, действительно, уникальную возможность настраивать программу без конфигуратора, сам часто этим пользуюсь. Автору плюс, с минимальными изменениями конфигурации решил вопрос.

    Reply
  9. anchovy

    Смотрю статьи финалистов Spec8.ru

    Гилеву однозначно нужно проверять знания правил именования переменных.

    Что это значит Если я.Пустая() Тогда ???

    И это не первая статья с подобной проблемой.

    Жаль не могу поставить минус.

    Reply
  10. Gennady.Chernyshev

    Всё очень просто, когда пишешь одноразовую «нетленку» нет желания комментировать и думать об удобном чтении кода. Когда то на др. языках писали в циклах i=0 и т.д. — оттуда привычка. Для публикации, конечно надо было исправить, но проклятый копипаст…

    Reply
  11. klel

    Пища для мозгов 🙂 Спасибо

    Reply
  12. Kamikadze

    Плюс не поставлю — вручную можно создать безовских проблем.

    Reply
  13. and_r

    Изобретение велосипеда какое-то. Если значения реквизитов хранить не надо, лучше их запрашивать перед выводом формы, а если нужно хранить, то лучше снять с поддержки и добавить реквизиты в документ, это займет гораздо меньше времени, к тому же данный документ не так уж часто обновляется, особых проблем не будет

    Reply
  14. AlbinaAAA

    Плюс поставлю за нестандартность подхода к решению задачи, мне было интересно 🙂 Но, с точки зрения реальной практики это неоптимально по трем причинам: 1) действительно можно было решить эту задачу гораздо проще 2)для пользователя правильнее один раз набить эту информацию, а потом получать сколько угодно результаты в отчет, а не набивать каждый раз заново 3) программисту, которому вдруг придется разбираться с этим отчетом, думаю, что понадобиться дополнительное время на то, чтобы разобраться (опять-таки из-за нестандартности подхода).

    Reply
  15. Gennady.Chernyshev

    And_r, AlbinaAAA, Kamikadze если бы я писал о «нетленке» под названием «Декларация о ввозе», то да это:

    1. Изобретение велосипеда;

    2. Неоптимально;

    3. Можно вручную.

    Да и описывать было бы не надо, выложил бы «нетленку», а код разобрать — «пара пустяков». Для тех, кто давно и успешно программирует на восьмёрке это чтиво — зря потраченное время. Для новичков в V8 (кем я и являюсь) — пример, как и где хранить настройки, как работать с доп. реквизитами, и вообще, мне одно только название «КвалификаторыСтроки» не нравилось, не говоря о том как это использовать. Создать элемент свойства объектов в плане видов характеристик — не проблема, а вот правильно заполнить «ТипЗначения», «НазначениеСвойства» — это, для тех кто начинает, подумалось, не совсем просто, вот и выложил «шпаргалку».

    Anchovy прав, я финалист Spec8.ru. Наверное, проще было бы сфотографироваться на фоне ПК, а «не учить учёных», но вот решил попробовать себя в жанре писателя 🙂

    Reply
  16. Gennady.Chernyshev

    Albina, «для пользователя правильнее один раз набить эту информацию» вот с эти не могу согласиться. В статье приведён пример настройки, сам отчёт ориентируется на названия, типа «1.Способ доставки», и если пользователь вручную напишет «1.СпосАб доставки» или «Метод отправки» — отчёт не сработает. И вообще, если пишем какую-то «нетленку» на сторону — «танцы с бубном» объяснять, в каких док-ах и справочниках какие доп. реквизиты надо завести, как правильно их «обозвать» и какой тип значения присвоить, а так, при первом запуске настроил и готово, не нравится «1. Способ доставки», набери в первоначальной настройке «1.Метод привоза» и всё будет работать. Естественно, значения, пользователь должен будет заполнить, но ему не надо думать как назвать доп. реквизит и какой тип присвоить. Кстати, в БП — это действительно называется «Дополнительный реквизит», а в УПП я не знаю, может быть и «Свойство».

    Reply
  17. AlbinaAAA
    Для новичков в V8 (кем я и являюсь) — пример, как и где хранить настройки, как работать с доп. реквизитами, и вообще, мне одно только название «КвалификаторыСтроки» не нравилось, не говоря о том как это использовать. Создать элемент свойства объектов в плане видов характеристик — не проблема, а вот правильно заполнить «ТипЗначения», «НазначениеСвойства» — это, для тех кто начинает, подумалось, не совсем просто, вот и выложил «шпаргалку».

    (15) Gennady.Chernyshev, так и мне всё это было интересно, потому плюс от меня 🙂 и вообще, лучше отнестись ко всему вышесказанному, как к конструктивной критике.. хотя я тоже как финалист проекта spec8.ru, написавшая здесь статью, уже не раз подумала как и Вы 🙂

    Наверное, проще было бы сфотографироваться на фоне ПК, а «не учить учёных», но вот решил попробовать себя в жанре писателя 🙂

    иногда, как msal (финалист продвинутого) 🙂

    Чтоб я ещё сюда написал.. 🙁

    Всем финалистам досталось 🙂

    Reply
  18. svn_kirov

    Сама идея хранить реквизиты для печати в дополнительных реквизитах (свойствах) документов, не изменяя конфигурации, очень хороша! хоть и не нова. За идею автору +.

    А вот за качество реализации обработки, изложения и оформления материала — жирный минус. Итого 0.

    Reply
  19. makas

    Я тож не совсем понимаю зачем надо что-то менять в конфигураторе:-/

    а так плюс за идею

    Reply
  20. buval

    Большой плюс автору. Сам сопровождаю 2 конфигурации КА при помощи доп реквизитов уже 3 год. Все пожелания клиента решаемы таким образом. Отчеты выполняю из справочника Дополнительные отчеты и обработки. В настоящее время с дополнительными реквизитами и свойствами разрабатываю в конфигурации БП 3.0 УФ. Но там более заморочено.

    Reply
  21. Alister

    Вопрос: есть БП 2.0, при интерактивном добавлении дополнительного реквизита документа, он добавляется без привяки к виду документа, т.е. он виден потом при открытии в любом документе — можно ли без влезания в конфигуратор задать соответствие реквизита виду документа ? Т.е. дополнительный реквизит «Процент наценки» только для реализации, а реквизит «Сумма документа» для требования-накладной, перемещения и передачи в эксплуатацию ?

    Reply
  22. Alister

    Апну.

    Reply
  23. drogs

    (22) Alister, скорее всего никак

    Reply
  24. Alister

    (23) drogs, спасибо.

    Это очень и очень жаль.(с)

    Reply
  25. RayCon

    Предлагаю сотрудничество в сфере ВЭД: http://forum.infostart.ru/forum69/topic97458/

    Reply
  26. droplet

    (21)Alister,

    Можно при вводе нового свойства объекта при выборе поля Назначение в открывшейся форме «Назначение свойств категорий объектов» ввести новый элемент ПВХ, у которого в качестве Типа поставить нужный вам документ

    Reply
  27. 4ur

    когда то искал информацию как работат с доп. свойствами, так и не понял тогда, возможно в то время не так воспринимал имеющуюся информацию, а оказывается не все так сложно…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *