Попросили в V8 сделать отчет «Сообщение о ввозе»на основе док-та «ГТД по импорту». При анализе задания, выяснилось, что в БД(Бухгалтерия) нет информации, требуемой в отчет.
— Способ доставки корреспонденции
— Код ТН ВЭД ТС
— Категория
— Кол-во листов
первая мысль была снимать с поддержки и править конфигурацию, но потом пришла «светлая мысля» делать на доп. реквизитах докуметов и справочников. При первоначальной настройки отчета создаю доп реквизиты документа «ГТД по импорту»:
1.Способ доставки
2.Кол-во листов
3.Номер договора (по требованию заказчика)
4.Дата договора (по требованию заказчика — ему удобно, чтобы договор «сидел» в документе)
и реквизиты номенклатуры
1.Категория
2.Код ТН ВЭД ТС
Всё. Далее пользователь заполняет реквизиты, а вывести форму — дело техники.
Подробности программной работы с доп.реквизитами:
форма настройки.
При открытии Читаю ХранилищеОбщихНастроек, если неопределено
Заполняю поля формы с названиями доп. реквизитов
ПараметрыРаботы = ХранилищеОбщихНастроек.Загрузить(«ГЧ.СообщениеОВвозе»,»Параметры»);
Если ПараметрыРаботы <> Неопределено Тогда
ПараметрыРаботы.Свойство(«АкредитованныйКонтрагент»,АкредитованныйКонтрагент);
ПараметрыРаботы.Свойство(«НазваниеДопСвойстваСпособДоставки»,НазваниеДопСвойстваСпособДоставки);
и т.д.
Если Не ЗначениеЗаполнено(НазваниеДопСвойстваСпособДоставки) Тогда
НазваниеДопСвойстваСпособДоставки = «1.Способ доставки»;
КонецЕсли;
и т.д
Перед закрытием формы настройки, создаю структуру, записываю в неё названия полей(на случай если пользователь изменил название поля) сохраняю а ХранилищеОбщихНастроек
ПараметрыРаботы = Новый Структура;
ПараметрыРаботы.Вставить(«АкредитованныйКонтрагент»,АкредитованныйКонтрагент);
ПараметрыРаботы.Вставить(«НазваниеДопСвойстваСпособДоставки»,НазваниеДопСвойстваСпособДоставки);
и т.д
Далее если доп реквизиты ещё не созданы (первый запуск) создаём
Если ЗначениеЗаполнено(НазваниеДопСвойстваКатегория) Тогда
я = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НазваниеДопСвойстваКатегория);
Если я.Пустая() Тогда
я = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
я.Наименование = НазваниеДопСвойстваКатегория;
я.ТипЗначения = Новый ОписаниеТипов(«Строка»,Новый КвалификаторыСтроки(20));
я.НазначениеСвойства = ПланывидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
я.Записать();
Записано = Истина;
КонецЕсли;
Иначе
Сообщить(«Заполните «»Название доп. свойства «»Категория»» «» «);
ВсёЗаполнено = Ложь;
КонецЕсли;
а где вопрос ?
(1) Это не вопрос, а публикация.
статья из серии «Учите мат.часть».
И не понятно, смысл городить обработку, если они создаются одноразого)))
Не совсем понял. Работаю с УПП. В УПП есть кнопка «Свойства». Описанный функционал, это есть что то взамен кнопке «Свойства» в УПП ? В Бухгалтерии нет кнопок «Свойства»? Или в описанном функционале заложена какая то другая мысль? Хотелось бы тогда , чтобы это отличие в описании было описано (простите за тавтологию). Сначала хотел плюсануть, потом задумался не то же самое ли это.
если создавать их одноразово, то возможно большой необходимости в программном создании нет, хотя понять принцип — уже достаточно хорошо. Передо мной как раз стоит задача вытягивать в печатную форму такие доп. реквизиты, может кто подскажет, где по этому поводу можно почерпнуть информацию…
(0)
0. а зачем снимать с поддержки? править можно и с поддержкой, просто труднее потом будет обновляться (точнее дольше, так как надо всё проверять внимательней)…
1. никакого оформления статьи…
2. полностью согласен с (4) — есть свойства документов, там можно всё ОДИН раз прописать и хоть каждый день перепечатывать эти «Сведения о ввозе», при этом не заполнять доп. реквизиты каждый раз…
З.Ы. минус ставить — совесть не позволит (как никак всё таки автор старался, писал статью), плюс — здравый смысл… 🙂
(5) — я стараюсь все доп. реквизиты, которые хочет видеть начальство в базе, прописывать через свойства объектов. Насколько я понимаю такой справочник и соответствующий регистр сведений должен быть во всех конфигурациях 1С…
Доп. реквизиты дают, действительно, уникальную возможность настраивать программу без конфигуратора, сам часто этим пользуюсь. Автору плюс, с минимальными изменениями конфигурации решил вопрос.
Смотрю статьи финалистов Spec8.ru
Гилеву однозначно нужно проверять знания правил именования переменных.
Что это значит Если я.Пустая() Тогда ???
И это не первая статья с подобной проблемой.
Жаль не могу поставить минус.
Всё очень просто, когда пишешь одноразовую «нетленку» нет желания комментировать и думать об удобном чтении кода. Когда то на др. языках писали в циклах i=0 и т.д. — оттуда привычка. Для публикации, конечно надо было исправить, но проклятый копипаст…
Пища для мозгов 🙂 Спасибо
Плюс не поставлю — вручную можно создать безовских проблем.
Изобретение велосипеда какое-то. Если значения реквизитов хранить не надо, лучше их запрашивать перед выводом формы, а если нужно хранить, то лучше снять с поддержки и добавить реквизиты в документ, это займет гораздо меньше времени, к тому же данный документ не так уж часто обновляется, особых проблем не будет
Плюс поставлю за нестандартность подхода к решению задачи, мне было интересно 🙂 Но, с точки зрения реальной практики это неоптимально по трем причинам: 1) действительно можно было решить эту задачу гораздо проще 2)для пользователя правильнее один раз набить эту информацию, а потом получать сколько угодно результаты в отчет, а не набивать каждый раз заново 3) программисту, которому вдруг придется разбираться с этим отчетом, думаю, что понадобиться дополнительное время на то, чтобы разобраться (опять-таки из-за нестандартности подхода).
And_r, AlbinaAAA, Kamikadze если бы я писал о «нетленке» под названием «Декларация о ввозе», то да это:
1. Изобретение велосипеда;
2. Неоптимально;
3. Можно вручную.
Да и описывать было бы не надо, выложил бы «нетленку», а код разобрать — «пара пустяков». Для тех, кто давно и успешно программирует на восьмёрке это чтиво — зря потраченное время. Для новичков в V8 (кем я и являюсь) — пример, как и где хранить настройки, как работать с доп. реквизитами, и вообще, мне одно только название «КвалификаторыСтроки» не нравилось, не говоря о том как это использовать. Создать элемент свойства объектов в плане видов характеристик — не проблема, а вот правильно заполнить «ТипЗначения», «НазначениеСвойства» — это, для тех кто начинает, подумалось, не совсем просто, вот и выложил «шпаргалку».
Anchovy прав, я финалист Spec8.ru. Наверное, проще было бы сфотографироваться на фоне ПК, а «не учить учёных», но вот решил попробовать себя в жанре писателя 🙂
Albina, «для пользователя правильнее один раз набить эту информацию» вот с эти не могу согласиться. В статье приведён пример настройки, сам отчёт ориентируется на названия, типа «1.Способ доставки», и если пользователь вручную напишет «1.СпосАб доставки» или «Метод отправки» — отчёт не сработает. И вообще, если пишем какую-то «нетленку» на сторону — «танцы с бубном» объяснять, в каких док-ах и справочниках какие доп. реквизиты надо завести, как правильно их «обозвать» и какой тип значения присвоить, а так, при первом запуске настроил и готово, не нравится «1. Способ доставки», набери в первоначальной настройке «1.Метод привоза» и всё будет работать. Естественно, значения, пользователь должен будет заполнить, но ему не надо думать как назвать доп. реквизит и какой тип присвоить. Кстати, в БП — это действительно называется «Дополнительный реквизит», а в УПП я не знаю, может быть и «Свойство».
(15) Gennady.Chernyshev, так и мне всё это было интересно, потому плюс от меня 🙂 и вообще, лучше отнестись ко всему вышесказанному, как к конструктивной критике.. хотя я тоже как финалист проекта spec8.ru, написавшая здесь статью, уже не раз подумала как и Вы 🙂
иногда, как msal (финалист продвинутого) 🙂
Всем финалистам досталось 🙂
Сама идея хранить реквизиты для печати в дополнительных реквизитах (свойствах) документов, не изменяя конфигурации, очень хороша! хоть и не нова. За идею автору +.
А вот за качество реализации обработки, изложения и оформления материала — жирный минус. Итого 0.
Я тож не совсем понимаю зачем надо что-то менять в конфигураторе:-/
а так плюс за идею
Большой плюс автору. Сам сопровождаю 2 конфигурации КА при помощи доп реквизитов уже 3 год. Все пожелания клиента решаемы таким образом. Отчеты выполняю из справочника Дополнительные отчеты и обработки. В настоящее время с дополнительными реквизитами и свойствами разрабатываю в конфигурации БП 3.0 УФ. Но там более заморочено.
Вопрос: есть БП 2.0, при интерактивном добавлении дополнительного реквизита документа, он добавляется без привяки к виду документа, т.е. он виден потом при открытии в любом документе — можно ли без влезания в конфигуратор задать соответствие реквизита виду документа ? Т.е. дополнительный реквизит «Процент наценки» только для реализации, а реквизит «Сумма документа» для требования-накладной, перемещения и передачи в эксплуатацию ?
Апну.
(22) Alister, скорее всего никак
(23) drogs, спасибо.
Это очень и очень жаль.(с)
Предлагаю сотрудничество в сфере ВЭД:http://forum.infostart.ru/forum69/topic97458/
(21)Alister,
Можно при вводе нового свойства объекта при выборе поля Назначение в открывшейся форме «Назначение свойств категорий объектов» ввести новый элемент ПВХ, у которого в качестве Типа поставить нужный вам документ
когда то искал информацию как работат с доп. свойствами, так и не понял тогда, возможно в то время не так воспринимал имеющуюся информацию, а оказывается не все так сложно…