Модуль 4 ОБЩАЯ ИНФОРМАЦИЯ Регистры хранят записи о произошедших событиях или справочную информацию. Регистр — это объект конфигурации, с которым разработчику приходится взаимодействовать больше всего. ТЕОРИЯ Здесь мы будем разбирать две категории регистров: регистры накопления и регистры сведений. Регистры накопления Регистры накопления — объекты конфигурации, предназначенные для хранения данных из разных типов документов. Хранение данных организовано в виде записей регистра. Записи регистра накопления Для того чтобы документ делал записи в регистр накопления, требуется настроить его движения. Выбор регистров, по которым осуществляет движение документ Для этого на соответствующей вкладке документа нужно выбрать регистры, по которым он осуществляет движения, перейти в конструктор движений и выполнить сопоставление. Регистры накопления в зависимости от настроек подразделяются на два типа: хранение остатков и хранение оборотов. Задание вида регистра накопления Регистр типа «Остатки» имеет два вида движения: приход и расход. Скажем, для документа «Поступление товаров» целесообразно указать тип движения «Приход», а для документа «РеализацияТоваров» — «Расход». При построении отчёта по данному регистру можно отобразить остатки на текущий момент либо на определённую дату. Система автоматически производит подсчёт прихода, расхода и выдаёт конечный результат. Тип «Остатки» для регистра выбирают, когда требуется хранить данные, которые принципиально можно вывести в ноль: то есть по которым возможен как приход, так расход. Пример настройки движения по остаточному регистру Регистр типа «Обороты» не имеет вида движения. Все движения по нему условно можно назвать приходом. Оборотный регистр накапливает информацию о постоянно растущих значениях: объёмы продаж, закупок, поступление платежей, интернет-трафик и так далее. То есть в оборотных регистрах принято хранить значения, по которым не требуется получение остатков и невозможно движение в обе стороны (приход и расход). Значение такого регистра принципиально невозможно вывести в ноль, так как нет «расхода». Пример настройки движения по оборотному регистру. Как видим, вида движения здесь нет Важно понимать отличия оборотных регистров от остаточных и понимать, в каких ситуациях применять тот или иной тип. Пример: бочка, в которую поступает вода по одной трубе и отводится по другой. Если мы поставим счётчик воды в саму бочку, то мы учитываем остатки. Ведь вода может приходить и уходить, а может даже выйти в ноль. Если мы поставим счётчик на одну из труб, то это будут обороты, потому что в трубе вода движется только в одном направлении. По одной трубе вода только втекает, а по другой — только вытекает. В первом случае мы, например, можем назвать регистр «входящий трафик», во втором — «исходящий трафик». Но также мы можем поставить счётчик на обе трубы и учитывать движение воды по модулю. Тогда мы получим «обороты» воды в системе водоснабжения. Это то же самое, когда директор компании заявляет: «Обороты денежных средств нашей компании составили ХХХХХХ рублей в этом месяце». Он учитывает обороты по модулю. Сколько из них были приходы, а сколько составили расходы, не уточняется. А имеющиеся на счёте денежные средства компании мы учитываем как «остатки», и здесь мы применили бы регистр типа «остатки». Ведь деньги на счёт приходят, уходят и могут выйти в ноль. Измерения регистра показывают, в каких разрезах хранятся данные. Например, если в регистре «ТоварыНаСкладах» только измерение «Номенклатура», то можно увидеть остатки товаров в разрезе только номенклатуры. Если завести измерение «Склад», то можно будет отследить не только остатки по номенклатуре в целом, но и остатки номенклатуры по складам. Ресурс — это реквизит регистра, представляющий собой хранимую в регистре величину. Регистры накопления могут хранить данные только с типом данных «число»! Например, количество товаров, денежные суммы и так далее. Важным свойством регистров является то, что регистраторов у регистра может быть несколько. Например, товар на склад может поступать не только документом «ПоступлениеТоваров», но и в результате перемещения товаров между складами (документ «ПеремещениеТоваров»). Продажи сотрудников могут отражаться не только документом «РеализацияТоваров», но и документом «ОказаниеУслуг». Регистр сведений — другой объект конфигурации, хранящий данные. Принципиально отличается от регистра накопления по двум параметрам: в качестве ресурса могут указываться различные типы данных, не только число; он может быть независимым от регистраторов, то есть записи в него могут вбиваться непосредственно. Способ ввода информации в регистр сведений указывается в настройках. Свойства регистра сведений Если выбран независимый режим записи, то для регистра нельзя указать документы, которые осуществляют по нему движение: данные в него вносятся только вручную. Обратная ситуация — если указать режим записи «Подчинение регистратору»: невозможно будет добавлять записи иначе как через документы-регистраторы. В регистрах сведений удобно хранить вспомогательную информацию: штрихкоды, величины окладов, курсы валют, должности сотрудников и так далее. Важным свойством регистра сведений является периодичность. В непериодическом регистре сведений может храниться только одна запись с определёнными измерениями. Например, если измерение регистра — номенклатура, а ресурс — штрихкод, то для непериодического регистра сведений возможна только одна запись со штрихкодом для каждого из товаров. Если же изменить периодичность, то у регистра появляется ещё одно неявное измерение — период. Задание регистру сведений «Курсы валют» периодичности — день. Курс каждой из валют теперь можно устанавливать не чаще одного раза в день. Кроме того, можно будет получить курс валют на любую дату в прошлом Это означает, что за разные периоды можно хранить несколько записей с одними и теми же измерениями. Например, создадим регистр сведений «Курсы валют». Если указать, что он непериодический, то пользователю придётся каждый день вручную менять курс валют по каждой валюте. При этом невозможно будет хранить историю изменения курсов по дням. Если же указать периодичность «в пределах дня», то каждый день можно будет создавать запись вида [Валюта] + [Курс]. Кроме того, в таком случае можно будет отследить, в какой день какой курс был у заданной валюты. При этом нельзя будет внутри одного дня создавать несколько записей с одинаковыми измерениями. Другой пример — регистр «ОкладыСотрудников». Если задать его периодичность «в пределах месяца», то нельзя будет устанавливать оклад сотрудника чаще, чем раз в месяц. В пределах месяца может быть только одна запись оклада для каждого из сотрудников. ТИПОВЫЕ ОШИБКИ 1. После разработки движений не производится проверка работы документов в пользовательском режиме. По каждому виду документов нужно в режиме пользователя создать документ, заполнить его, и если в нём есть табличная часть, то вбить несколько позиций. После чего сохранить и провести документ. Если он выдаст ошибки — разобраться в причинах и исправить. 2. Типы данных реквизитов справочников, регистров, документов указаны неправильно. То есть создаётся новый реквизит и не настраивается. По умолчанию у него остаётся тип данных «строка». 3. Вместо реквизита создаётся табличная часть. Например, нужно создать табличную часть «СписокТоваров» и в ней создать поля «Номенклатура», «Количество», «Стоимость». Вместо этого создаётся три табличных части: «Номенклатура», «Количество», «Стоимость». 4. Неправильно указывается тип регистра накопления. Важно разобраться, чем отличаются оборотные регистры от остаточных и какой тип должен быть выставлен каждому регистру. 5. После изменения типа или каких-либо настроек регистра не производятся изменения в обработке проведения. Например, регистр ранее назывался «ОбъёмыПродаж» и был остаточным. Его переименовали в «Продажи» и сделали оборотным. Нужно открыть обработку проведения, там заменить «ОбъёмыПродаж» на «Продажи» и убрать строку с видом движения, потому что оборотные регистры не имеют вида движения. 1. 2. 3. 4. 5. ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ Что такое регистры накопления? Какой смысл они несут? Что такое регистры сведений? Какой смысл они несут? Какие существуют типы регистров накопления? В чём принципиальное отличие остаточных регистров накопления от оборотных? Допустим, мы логистическая компания и мы хотим хранить в базе информацию о затратах на ремонт и обслуживание автомобилей. Какой тип регистра накопления нам подойдёт? 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Допустим, мы хотим хранить в базе данных информацию об имеющихся запасах топлива в хранилище. Какой тип регистра нам подойдёт? Допустим, мы хотим хранить информацию о том, за каким водителем какой автомобиль закреплён. И мы считаем, что эти данные постоянные или меняются редко. Какой регистр и его тип нам подойдёт? Допустим, мы хотим хранить информацию об окладах сотрудников. При этом оклады могут меняться не чаще одного раза в месяц. Какой регистр и его тип нам подойдёт? Что такое периодический регистр сведений? Какие варианты периодичности регистра сведений можно настроить? Что такое обработка проведения? Как её создать? Что происходит при проведении документа, если для него настроена обработка проведения? Что происходит с документом, если для него не настроена обработка проведения? Что происходит, если мы пытаемся провести документ, который содержит критическую ошибку в обработке проведения? Как открыть обработку проведения и увидеть код, который делает записи в регистры? Можно ли этот код редактировать вручную?