Как проверить тип значения документа, справочника.

Ведения учета в 1С – это последовательный ввод документов 1С, отражающих хозяйственную деятельность компании. То есть — покупки, продажи и прочее.

Таким образом один из ключевых столпов, на которых работает 1С – это документы 1С.

Давайте рассмотрим в этом уроке — что такое документы 1С и принципы работы с ними.

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

Хозяйственные операции обычно проводятся над чем-то, например, над товарами (покупка, продажа), над деньгами (получение на счет в банке, выдача из кассы) и так далее.

Таким образом:

  • Есть вид учета: денежных средств, товаров и прочего.
  • Информация из справочников определяет разрез вида учета: касса, счет в банке, товар.
  • Документы 1С [каждый] определяют движение количества и/или суммы по разрезу в учете: касса +1000 рублей, счет -1000 рублей, товар +10 штук.

Зачем нужны Документы 1С

Эта история началась до появления 1С. В самом развитии учета товаров и денег как таковом люди задумывались о способах подтверждения как сделки в целом (договор), так и частей выполнения договора (хозяйственных операций).

Поставщик привез товар и отдал. В обмен нужна бумажка с печатью и подписью, чтобы было доказательство. Постепенно это развивалось. Как должна бумажка выглядеть. В каких случаях бумажки с каким названием должны выдаваться.

Сейчас на каждый чих придумана такая своя бумажка. Называется она [в целом] [первичный] документ учета. А в частности – конкретные называния документов: приходная накладная [на товары], счет-фактура, кассовый ордер.

Когда уже появилась 1С и другие программы учета, стало ясно, что как таковые первичные документы в программе не нужны – если цель посчитать сколько итого заработали или есть товаров. Например, можно просто записывать в некую таблицу или журнал движение денег по кассе и будет Вам итого (как в Excel).

Но в этом случае нет четкого соответствия бумажным документам и в случае, когда нужно разобраться а откуда такая сумма взялась, а что да почему, а где как говорится, доказательства?

Отсюда появилось четкое правило: в программе учета должны быть в наличии отражения всех настоящих бумажных первичных документов, причем один бумажный документ = один электронный документ 1С.

Где расположены Документы 1С

Аналогично, как и со справочниками, в режиме 1С Предприятие пользователь видит не какое-то стандартное меню 1С, а интерфейс, разработанный программистом. Поэтому угадать куда программист положил конкретный документ нельзя. Как фантазия позволила.

Для администратора (т.е. того самого программиста) есть стандартное меню, которое содержит все документы 1С конфигурации. Это меню Операции / Документы 1С, через который можно открыть любой документ.

В новой 1С, тонкий / управляемый клиент, есть аналогичное меню с названием Все функции. Работает так же как и Операции в толстом клиенте.

В Конфигураторе все объекты 1С находятся в окне конфигурации, разделенным по веткам. Документы 1С находятся в одноименной ветке. Раскрыв ветку Вы видите список конкретных документов. Методика работы была описана в предыдущих уроках. Редактор открывается двойным щелчком мыши по конкретному документу.

Как выглядят Документы 1С

Перед тем, как начать работать с конкретным документом №33 от 1 октября, Вы открываете список документов.

Список бывает двух видов:

  • Простой список документов 1С конкретного вида (на сленге часто называют ДокументСписок), например «Список приходных накладных»
  • Журнал документов 1С – это отдельный Объект 1С, который позволяет создать сплошной список разных видов документов, например «Список складских документов».

1) Документы 1С имеют признаки, которые позволяют отличать один документ 1С от другого. Основные признаки документов 1С, на основании которых организуется список, это:

  • Дата документа
  • Номер документа
  • Проведен по регистрам.

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

Чтобы провести документы 1С — нужно нажать или кнопку ОК (расшифровывается как Записать и Провести), или кнопку Провести (в меню по правой кнопке мыши в списке документов или кнопка в панели вверху окна документа).

Провести документы 1С можно .

2) К ним конечно же добавляются вторичные, но не менее важные учетные признаки:

  • Организация
  • Контрагент (т.е. клиент)
  • Сумма и валюта (т.е. рубли, доллары) документа.

3) В большинстве типовых конфигураций 1С возможно вести одновременно несколько видов учета: бухгалтерский, налоговый, оперативный, еще какой-то. В связи с этим появляется третий признак документа – галочки, «включающие» этот документ для конкретного вида учета.

При двойном щелчке мышкой на конкретном документе – открывается форма (т.е. окно) самого документа. Она делится на «шапку» (обычно основные перечисленные выше поля) и закладки с табличными частями (таблицами).

У основной массы [видов] документов есть табличные части. Это значит, что мы обычно оформляем накладную не на один товар – товаров много. Поэтому для их внесения нужна таблица.

Документы 1С отличают один от другого – датой и номером. Это его главные уникальные поля. Номера 1С присваивает автоматически.

Усложнение 1. Часто номера документов должны быть с «префиксом» по организации, т.е. не «001», а «ОА0001» и «БВ001». Префикс тогда указывается в справочнике организаций – для одной ОА, для другой БВ.

Усложнение 2. Бывает, что у разных документов должна идти сплошная уникальная нумерация подряд. Для этих случаев есть объект 1С – Нумератор. Он расположен внутри ветки конфигурации Документы, в самом верху.

Усложнение 3. Последовательности. Мы рассмотрим в уроке «Дата 1С».

Поле Номер, обычно по-умолчанию закрыты от редактирования пользователем. Изменить можно вот таким способом (конечно если это разрешено правами).

Документы 1С — настройка и разработка

Создание новых документов 1С или изменение существующих проводится в конфигураторе. Методика работы – такая же, как и с другими объектами. Общие принципы мы рассматривали в предыдущих уроках.

Документы 1С — основные особенности по закладкам конфигуратора:

Главная Для начинающих разработчиков Учимся программировать

Как проверить тип значения документа, справочника?

Во-первых, во встроенном языке для работы с одним прикладным объектом реализовано несколько типов.

Например, задачи, которые в 1С:Предприятии 7.7 решал тип Документ решаются теперь несколькими типами. Они разделены по своему назначению.

Тип ДокументОбъект используется для записи и удаления отдельных документов.

Тип ДокументВыборка используется для перебора документов, хранящихся в базе данных.

Существуют и другие типы данных, предназначенные для работы с документом. При написании модулей используются те типы, которые необходимы для решения конкретных задач.

Во-вторых, во встроенном языке нет двух понятий - Тип и Вид . Для каждого объекта конфигурации имеется свой набор типов используемых во встроенном языке для работы с описываемым им прикладным объектом. То есть при использовании конфигурации не будет существовать такого типа как ДокуменСсылка , а будут существовать конкретные типы, например, ДокументСсылка.Счет, ДокументОбъект.Счет, ДокументСсылка.Накладная , и т.д.

Кроме этого, для манипулирования типами используются не их строковые наименования, а специальный тип Тип . Значение типа Тип может быть получено функцией Тип() , получающей в качестве параметра имя типа.

Чтобы проверить тип значения переменной нужно определить ее тип функцией ТипЗнч() и использовать функцию Тип() для получения типа по имени.

Например:

Универсальная обработка "Пакетный ввод документов" предназначена для автоматизации ввода документов на основании табличных данных Excel или других подобных программ.

Обычно в таком случае под каждый конкретный случай пользователь заказывает программисту специальную обработку, программист по описанному техзаданию прописывает код загрузки данных из Excel и код создания новых документов. При этом ему приходится для каждой ситуации описывать связи между столбцами (колонками) таблицы и реквизитами документа. Кроме того, даже если из таблицы берется всего пара реквизитов, программисту все равно необходимо написать код для задания остальных реквизитов документа стандартными значениями. А ведь даже в таком простом документе как приходный кассовый ордер этих реквизитов свыше 40. Что уж говорить, без 2-3 часов работы программиста не обойтись, а это от 3 до 6 тыс. руб. для каждого конкретного случая. Бывают еще ситуации, когда программист поленится прописывать установку всех несущественных на его взгляд реквизитов документа в обработке и это может привести к тому что после того как вы зайдете в созданный этой обработкой документ и закроете его ничего не поменяв программа все равно выведет предложение сохранить документ потому что он был изменен. Это происходит потому, что при открытии документа заполняются некоторые стандартные реквизиты документа значениями по умолчанию и это могут быть как раз те реквизиты которые программист упустил из виду. Можно подумать, что особо страшного в этом ничего нет, ну нажать «да «и документ сохранится. Но если описанная ситуация произойдет не сразу после применения обработки, а допустим спустя месяц и за это время вы задним числом поменяете более старые документы, то после нажатия «да» документ может быть перепроведен с другими проводками, например, по зачету авансов между счетами 60.01 и 60.02.

Обработка Пакетный ввод документов предлагает другой более универсальный подход к решению задач по пакетному вводу документов на основании табличных данных. За основу здесь берется повторение ручных действий человека. А что человек делает, когда ему необходимо ввести много данных вручную? Правильно, он копирует с аналогичных документов и меняет отдельные реквизиты. «Аналогичные документы» в обработке называются шаблоны. Шаблоны настраиваются в отдельной таблице, которую можно сохранить. Структура колонок таблицы данных для загрузки также настраивается в отдельной таблице, где можно указать имя колонки, имя реквизита значение, которого нужно заменить данными из колонки, вид реквизита: реквизит документа или реквизит табличной части и другие параметры.

Обработка стабильно работает на релизе 3.0.64.28 конфигурации 1С бухгалтерия 8.3, но должна без проблем работать на всех релизах конфигурации, так как на экспортные процедуры общих модулей не ссылается.

Сравнение версий

Дополнение от 26.11.2018 - Обработка была протестирована на УТ11. Выдавала ошибку в одном месте:

Если ТипЗнч(ДокОбъект)=Тип("ДокументОбъект.КорректировкаДолга") Тогда так как в УТ11 документа Корректировка долга нет

Поменял на Если СтрНайти(Метаданные.НайтиПоТипу(ТипЗнч(ДокОбъект)).ПолноеИмя(),"КоректировкаДолга")>0 Тогда Это выражение не обращается явно к типу а просто ищет в строке с полным именем типа документа подстроку КорректировкаДолга. Если не найдет то ничего страшного, пойдет дальше и ошибку выдавать не будет.

В остальном все работает на УТ11, так как обработка универсальная и работает на всех управляемых формах. Если кого-то заинтересует пишите в комментариях, сделаю версию для толстого клиента 1с 8.2

2. В настройках колонок добавил флажок "создавать новые элементы". Если тип значения реквизита - справочник, поиск осуществляется по наименованию и вводимое значение не найдено в справочнике, то при установленном флажке "создавать новые элементы" будет создан новый элемент справочника.

3. В настройках колонок сгруппировал некоторые колонки вертикально, чтобы вся таблица помещалась в ширину на экране (при разрешении 1920*1080)

4. Исправил мелкие баги

Версия 1.2 от 20.12.2018.

1. В настройках шаблонов добавлено поле счет-фактура. Это поле активно только для если документ шаблона реализация товаров и услуг. При установленном флажке во время загрузки документов по этому шаблону на основании документа будет дополнительно создана счет-фактура

2. Добавлена возможность многострочного ввода документов. Если в поле шаблон ввести текст "<>" то по этой строке не будут вводиться новые документы, а данные из колонок с видом "Реквизит табличной части" будут добавляться в табличные части документов из предыдущей строки. Например в следующей таблице будет создано 2 документа: в первом будет 3 строки, во втором 2 строки. Многострочный ввод документов имеет смысл использовать для ввода табличных частей документов. Если кроме реквизитов табличной части нужно изменить реквизиты самих документов, их нужно задать в первой строке блока (там где шаблон не "<>")

3. В связи с добавлением возможности многострочного ввода полностью переработан программный код отвечающий за ввод документов. Теперь данные из таблицы сначала собираются в структуру изменяемых реквизитов, а затем на основе разбора структуры реквизитов создаются документы и изменяются реквизиты. Это позволило сделать программный код более кратким, простым, логичным и понятным для отладки. Удалось избежать использование оператора "Выполнить", который в отдельных случаях мог вызывать ошибку. Также новый программный код работает быстрее, так как данные записываются в базу только один раз.

Версия 1.3 от 23.12.2018.

1. Исправлена ошибка выходившая при выборе реквизита поиска. Ошибка появилась в предыдущей версии и была вызвана тем,что при переработке программного кода был оптимизирован код некоторых функций, а вызов функции в одном месте не был скорректирован.

2. Добавлена возможность ввода периодических реквизитов. Периодические реквизиты это реквизиты которые хранятся в регистрах сведений и по которым в этих регистрах сведений хранится история изменений. В самом документе и в его табличных частях значения периодических реквизитов не хранятся, поэтому в предыдущих версиях не было возможности их вводить.

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Механизм ограничения доступа к данным RLS (Row Level Security) позволяет довольно гибко настраивать и разграничивать права доступа к объектам программы. В типовых конфигурациях "1С Предприятие" механизм развит довольно хорошо, однако бывают ситуации, когда типовой настройки недостаточно. Рассмотрим такую ситуацию на примере программы "ERP Управление предприятием 2".

Представим, что на предприятии действует следующая схема: Заявки на расходование денежных средств оформляют сотрудники нескольких подразделений, например "Плановый отдел", "Хозяйственный отдел". Эти отделы – элементы справочника "Подразделения организаций" (сотрудники оформлены в этих отделах). При этом в Заявках на расходование денежных средств указываются другие подразделения – элементы справочника "Структура предприятия". Например, "Подразделение 1", "Подразделение 2". Существует группа пользователей, которая должна видеть только те заявки, которые оформлены сотрудниками "Планового отдела". Типовая настройка RLS для документа "Заявка на расходование денежных средств" и роли "Чтение заявок на расход ДС" не позволяет выполнить такую настройку, поэтому мы её немного доработаем – добавим новый вид доступа.

Начнём доработку с документа "Заявка на расходование денежных средств". Добавим реквизит, содержащий в себе подразделение автора документа. Назовём его ПодразделениеАвтора . Тип значения реквизита – Э-э... Вот здесь есть над чем подумать. Если установить тип значения – "СправочникСсылка.ПодразделенияОрганизаций", то потом, когда мы попытаемся создать новый вид доступа с названием "Подразделения авторов документов" и типом значения "СправочникСсылка.ПодразделенияОрганизаций", система при обновлении выдаст ошибку:

"Тип значений "Подразделение" уже указан для вида доступа "ПодразделенияОрганизаций". Для вида доступа "ПодразделенияАвторовДокументов" его нельзя указать."

Есть соблазн использовать объект "Определяемый тип", что-нибудь вроде:

ВидДоступа. ТипЗначений = Тип("ОпределяемыйТип.ПодразделенияАвторов" ) ;

Но система не хочет понимать такие формулировки, так что если кто что может дельного подсказать, буду признателен. А пока создаём справочник "Подразделения авторов документов", владелец которого – справочник "Подразделения организаций". В этом справочнике те же подразделения, что и во владельце. И теперь для нового реквизита документа "Заявка на расходование денежных средств" укажем тип "СправочникСсылка.ПодразделенияАвторовДокументов". Настроим заполнение реквизита при записи документа. Думаю, тут описывать это не стоит, так же как и заполнение нового справочника.

Определяемый тип "ЗначениеДоступа"
Добавляем в составной тип ссылки на документ "Заявка на расходование денежных средств" и справочник "Подразделения авторов документов".

Подписка на событие "ОбновитьГруппыЗначенийДоступа"
Добавим в список источника документ "Заявка на расходование денежных средств".

Общий модуль "УправлениеДоступомПереопределяемый"
Добавляем в процедуры модуля несколько строк.

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт ... //Доработка ВидДоступа = ВидыДоступа. Добавить() ; ВидДоступа. Имя = ; ВидДоступа. Представление = НСтр("ru = "Подразделения авторов документов"" ) ; ВидДоступа. ТипЗначений = Тип("СправочникСсылка.ПодразделенияАвторовДокументов" ) ; //КонецДоработки КонецПроцедуры Процедура ПриЗаполненииИспользованияВидаДоступа(ВидДоступа, Использование) Экспорт ... //Доработка Если ВидДоступа = "ПодразделенияАвторовДокументов" Тогда Использование = Истина ; КонецЕсли ; //КонецДоработки КонецПроцедуры Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт Описание = Описание + " |... |//Доработка |Документ.ЗаявкаНаРасходованиеДенежныхСредств.Чтение.ПодразделенияАвторовДокументов |//КонецДоработки |" ; КонецПроцедуры

Теперь нужно настроить роль для доступа к документу. Можно создать новую роль, а можно доработать уже существующую "Чтение заявок на расход ДС". Рассмотрим второй вариант. В роли "Чтение заявок на расход ДС" уже есть настройка ограничения доступа с использованием шаблона "ПоЗначениямРасширенный".


Нам нужно вставить в список параметров свой вид доступа и поле таблицы, а также удалить такое же число пустых параметров, так как количество устанавливаемых значений должно соответствовать количеству параметров в шаблоне.


Далее, запускаем конфигурацию в режиме "Предприятие" с параметром запуска "ЗапуститьОбновлениеИнформационнойБазы". Также можно запустить, например с помощью внешней обработки, экспортную процедуру "УправлениеДоступомСлужебный.ОбновитьПараметрыОграниченияДоступа".

После того, как обновление завершится, нам останется создать профиль доступа, включающий в себя роль "Чтение заявок на расход ДС", а также группу доступа, настроить ограничение доступа и, наконец, назначить созданную группу доступа пользователям.




Просмотров