Конструктивный форум бухгалтеров Казахстана

Конструктивный форум бухгалтеров Казахстана
Текущее время: 21-11-2017, 00:09

Часовой пояс: UTC + 3 часа




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:35 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Учет «кодовых данных».

Курсаков С.А.


Что такое «кодовые данные».
В учете предприятия во многих местах применяются так называемые «кодовые данные» (термин условный). Это разнообразные коды – например, коды ТНВЭД, коды бюджетной классификации, коды назначения платежей, многочисленные кодировки, связанные с ЕАЭС, и т.д. Раньше эти кодовые данные не были так заметны, ведь кодов было немного, производители учетных программ обходились буквально несколькими полями в диалогах форм, и не вдавались в подробную проработку этого вопроса.
Однако в дальнейшем момент перехода в другое состояние был неуловимо и безвозвратно пропущен. И в настоящее время все сильнее проявляется тенденция как усложнения и разрастания уже имеющихся систем кодов, так и постоянного создания абсолютно новых видов кодов. Пример из последних - Единый номенклатурный справочник товаров, работ и услуг, http://enstru.kz/ , нужен для госзакупа.
Похоже, развитие общества и законодательства в направлении «кодовых данных» останавливаться не собирается, и те простые времена, когда кодировки можно было пересчитать на пальцах одной руки, остались в прошлом. Поэтому задача автора – осмыслить эту тенденцию и предложить варианты учета ее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:35 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Почему учет «кодовых данных» – это актуально.
Взрывной характер роста объема «кодовых данных», похоже, остался абсолютно неотрефлексированным производителями учетного программного обеспечения. В результате чего мы можем наблюдать такие программные решения, как –
-«Номенклатура.КодКПВЭД»,
-«Номенклатура.КодТНВЭД»,
-«Контрагент.КБЕ»,
-«Контрагент.КодОКПО» (приведены примеры из самых распространенных учетных бухгалтерских программ).
Создается впечатление, что, если завтра законодатель вдруг по каким-либо причинам создаст еще 10-20 новых видов кодов, то производители учетного ПО, нимало не сомневаясь, автоматически, по инерции, просто создадут еще 10-20 новых полей вида –
-«Номенклатура.Код20»,
-«Контрагент.Код156»…
Первый минус такого «инерционного» подхода заключается в плохой структуре, и следовательно – в плохой расширяемости и в плохой управляемости. Второй минус такого подхода заключается в том, что он привязан к условиям конкретной страны (в данном случае - Республики Казахстан), то есть не универсален.
Однако, далее автор покажет, что возможен совершенно иной, более изящный и красивый подход к учету «кодовых данных».


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:36 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Причины постоянного роста объемов и видов «кодовых данных».
Причины роста объемов и видов «кодовых данных», похоже, заключаются в росте и усложнении самой экономики как таковой, создании новых вертикальных и горизонтальных связей, межстрановых союзов и т.д. Однако, производители ПО склонны традиционно винить во всем законодателя, считая, что только его прихотями обусловлено очередное расширение объемов и видов «кодовых» (да и каких-то иных тоже) данных.
Многочисленные перечни (видов деятельности, каких-то товаров и т.д.) и списки, так популярные у законодателей в последнее время, также можно считать кодами (кодировками, видами кодов). Просто это выражено неявно. При этом название перечня (списка) может служить названием вида кодировки, а номер позиции в перечне (списке) – значением кода.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:36 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Виды «кодовых данных».
Если внимательно приглядеться к массиву разнообразных «кодовых данных», можно выделить в нем характерные виды информации, которые существенно отличаются друг от друга.
Во-1-х, это прежде всего виды кодов, применяемых для «лиц» (что такое «лица», см. статью автора «Лица или Контрагенты + Сотрудники»).
Во-2-х, это виды кодовых данных для «денежных средств» (или «денег»).
В-3-х, существуют «кодовые данные» для стран. При этом термин «страна» может пониматься очень расширенно, в том числе и как «регион», «район» (т.е. часть страны), и как «союз стран» (например, ЕАЭС, ЕС и т.д.) или «международная организация» (ОЭСР и т.д.).
Большой класс составляют коды для номенклатуры («активов»), или «каталога активов» (или «номенклатурных групп»). Что такое «актив» и «каталог актива», см. ранее статьи «Каталог и номенклатура», «Активы и номенклатура».
Как ни странно, но «налоги» как учетный объект пока избежали сильного усложнения относящихся к ним видов кодов. До сих пор существуют только «коды бюджетной классификации», и «коды строк налоговых деклараций». Возможно, именно это усыпило бдительность разработчиков учетного ПО, и закрепило их в идеологии вида «ОбъектУчета.КодNNN».


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:37 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Виды данных, близких и похожих на «кодовые данные», но таковыми не являющихся.
Существуют другие данные, как-бы похожие на «кодовые данные», но не вписывающиеся в их стройную систему. И лучше об этом упомянуть сразу, чтобы читатель не мучился с этими вопросами до конца статьи.
Это, во-1-х, данные так называемых «налоговых идентификаторов» (можно условно назвать их «TaxId-данные»). Сюда входят РНН, ИИН/БИН, ИНН, УНП, СИК и т.д. – то есть разнообразные налоговые идентификаторы (действующие и отмененные) не только Республики Казахстан, но и других стран, союзов, регионов. Учитывая важность налоговой идентификации, постоянные реформы в этой области, автор считает, что нельзя относить «TaxId-данные» в общую кучу «кодовых данных».
Во-2-х, есть большая область так называемых «информационных данных» (InfoData). Это могут быть цвет, размер, рост и т.д. «активов» (или «каталога активов»), какие-то характеристики их – выходная мощность, потребление энергии, вес, производитель и т.д. Эти данные не являются кодами.
В-3-х, есть еще так называемые «RegistrationData». Это могут быть виды и номера лицензий, номера сертификатов, номера ГТД, какие-то разрешения и т.д. Эти данные тоже не являются кодами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:37 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Структура видов «кодовых данных».
Опишем альтернативный подход для учета видов кодовых данных. Предлагается следующая таблица (справочник, регистр и т.д.) «Виды кодов приложения» со структурой полей (граф, реквизитов, ресурсов, измерений и т.д.):
-Код
-Страна. Некоторые виды кодов могут применяться только в конкретной стране (или в части страны, или в союзе стран), тогда это нужно указывать в этом поле. Если же данное поле пустое, значит, данный вид кода применяется во многих (или во всех) странах.
-ДатаНачалаДействия. Поле служит для информирования пользователей о сроке начала действия какого-либо вида кода. Но, однако, вроде бы логично напрашивающееся поле «Дата окончания действия» для «вида кода» автором не рекомендуется, потому что, как показывает практический опыт (например, отмены РНН), давным-давно законодательно прекращенное действие какого-либо вида кода тем не менее может фактически постоянно требоваться при введении в различные учетные формы. Поэтому не нужно вводить в заблуждение пользователей, изобретать какие-либо поля вроде «нормативного срока окончания действия», «фактического срока окончания действия» и т.д.
-Наименование, ПолноеНаименование
-Подробности1, Подробности2. Здесь могут приводиться какие-либо ссылки на веб-ресурсы, списки кодов, если они малочисленны, примечания и т.д.
Примеры «видов кодов приложения» - инвентарный номер, складской код, артикул, VIN код, каталожный номер, серийный номер, заводской номер, код ТНВЭД, код КОФ, номер паспорта, внутрифирменный каталожный номер, ГОСТ, СТ, ТУ, color code, style code, EAN code, перечень (список), почтовый код РК, альфа3 код,
цифровой код страны, код территории, IBAN, ZIP code, area code и т.д.
Преимущества применения таблицы «Виды кодов приложения» мы увидим дальше, но специалисту оно понятно практически сразу. Пользуясь ею, можно создавать новые «Виды кодов приложения» «на лету», в режиме пользователя, без мучительного обновления базы, без ожидания программиста, просто записав еще одну запись этой таблицы. Ранее же, чтобы вместить в базу данных новый вид кода, требовалось менять структуру базы (а это может быть тяжелой и трудоемкой операцией), каждый раз (!) создавая новую колонку (столбец, реквизит) типа -«Контрагент.НовыйКодНомер456» и т.д. Никто не думает о том, что будет дальше, когда число таких колонок может резко вырасти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:38 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Структура видов «кодовых данных лиц».
Однако не все так просто. Для «лиц» желательно создать отдельную таблицу видов кодов, учитывая влиятельность и массивный объем этой категории учетных объектов. Структура полей (граф, реквизитов, ресурсов, измерений и т.д.) таблицы (справочника, регистра) «Виды кодовых данных лиц» может выглядеть так:
-Код
-Страна. Виды кодов могут действовать только в какой-то определенной стране, группе стран, части страны.
-ДатаНачалаДействия
-Наименование, ПолноеНаименование
-Подробности1, Подробности2.
Пояснения к этим полям практически аналогичны пояснениям к вышеприведенной таблице «Виды кодов приложения».
Примеры «видов кодов лиц» - БИК, код Управления государственных доходов (код УГД), код ОКПО, код дисконтной карты, код станции, код получателя, идентификатор поставщика (Vendor ID), код соцзащиты (категория для социально-защищаемых лиц) и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:38 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Структура учета «кодовых данных» для «лиц».
Альтернативная таблица (справочник, регистр) учета «кодовых данных» «лиц» может выглядеть так:
-Код
-Страна. Опять же, один и тот же вид кода может иметь разные значения в разных районах, странах, союзах стран.
-ДатаНачалаДействия. По тем же самым соображениям лучше вообще не делать поле «ДатаОкончанияДействия».
-Наименование, ПолноеНаименование
-Вид кода лица – здесь находится ключевой «реквизит-разделитель», который позволяет хранить неограниченное количество «видов кодов» в базе без частого изменения структуры ее полей, и создавать новые виды кодов «на лету» в режиме пользователя без перепрограммирования.
-Значение. Конечное значение кода может выглядеть как - «6203», «6203 \ Алматинский район», и т.д.
-Подробности1, Подробности2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:39 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Структура учета «кодовых данных» для «денег» (касса, банк и т.д.).
Альтернативная структура полей (граф, реквизитов, ресурсов, измерений и т.д.) учета «кодовых данных» для «денег лиц» может иметь такой вид:
-Код
-ДатаНачалаДействия
-ДеньгиЛица – владелец вида и значения кода (расчетный банковский счет, касса и т.д.). Расчетный (банковский) счет не эквивалентен значению своего кода ИИК (см. ниже). Как показывает практика, для одного и того же расчетного счета ИИК может иногда меняться (например, при передаче счета между банками).
-Наименование, ПолноеНаименование
-Вид кода данных денег лица – реквизит-разделитель «Вид кода приложения»
-Значение. Если у «денег лица» меняется значение кода (например, IBAN, ИИК и т.д.), то с какой-то даты в этом поле можно его изменить без создания нового элемента «Расчетный банковский счет». Потому что логически создания нового расчетного счета при такой операции не было.
-ЛицоОператор. Если у «денег лица» меняется управляющий оператор (обычно это банк), то с какой-то даты в этом поле можно его изменить без создания нового элемента «Расчетный банковский счет». Потому что логически создания нового расчетного счета при такой операции не было. Такая операция может быть при передаче счета между банками.
-Валюта. Если у «денег лица» меняется валюта, то с какой-то даты в этом поле можно ее изменить без создания нового элемента «Расчетный банковский счет». Потому что логически создания нового расчетного счета при такой операции не было. Валюта «денег лица» может меняться при деноминации, обмене, директивном пересчете курсов и т.д. В случае, если валюты нет, то это мультивалютный счет (обычно это банковская карточка).
-Подробности1, Подробности2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:39 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Структура учета «кодовых данных» для «стран».
Альтернативная структура полей (граф, реквизитов, ресурсов, измерений и т.д.) учета «кодовых данных» для «стран» может иметь такой вид:
-Код
-Страна – владелец вида и значения кода
-ДатаНачалаДействия
-Наименование, ПолноеНаименование
-Вид кода страны – реквизит-разделитель «Вид кода приложения»
-Значение. Конечное значение кода может выглядеть как - «KZ», «KZ \ KAZ», и т.д.
-Подробности1, Подробности2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:40 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Структура учета «кодовых данных» для «активов», «каталога активов».
Альтернативная структура полей (граф, реквизитов, ресурсов, измерений и т.д.) учета «кодовых данных» для «активов» и «каталогов активов» может иметь такой вид:
-Код
-КаталогАктива, Актив – владелец вида и значения кода
-ДатаНачалаДействия
-Наименование, ПолноеНаименование
-Вид кода актива – реквизит-разделитель «Вид кода приложения»
-Значение. Конечное значение кода может выглядеть как - «4567», «123456789012 \ Кожа искусственная», и т.д.
-Подробности1, Подробности2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:40 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Объекты, для которых учет «кодовых данных» не требуется – склад, подразделение (отдел).
Однако, вышеприведенная идея «кодовых данных» нужна не всегда. В учете предприятия существуют объекты, для которых «кодовые данные» совсем не нужны (или пока не нужны). Это могут быть, например -
-«склады» (места хранения). При этом «склады» могут пониматься весьма широко, в том числе и как «субсклады» (палетты, полки, стеллажи, ячейки и т.д.).
-«подразделения» (департаменты, отделы, цеха). При этом подразделения могут пониматься весьма широко, в том числе и как «субподразделения» (бригады, звенья, участки и т.д.).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:40 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Проблема хранения в базе образцовых «кодовых данных».
Работа с кодами и видами кодов требует хранения в базе некоторых кодировок как некоего образца, нормативного документа, из которого можно выбирать правильные значения. Причем иногда коды хранятся целиком – например, когда кодировка краткая и/или почти вся она точно понадобится.
Иногда кодировка хранится частично, а иногда вообще не хранится.
Проблема заключается в том, что госорганы зачастую могут переделывать свои кодировки, отменять и вводить новые пункты, переносить сроки, приостанавливать действие, вновь вводить и т.д. Слежение за всеми этими вопросами может отнимать немало времени и усилий. При этом устаревшие коды могут использоваться в значениях полей в базе, и нужно решать, когда, как и на что их заменять.
Также госорганы могут отменять какие-либо значения кодов без явного указания их нового аналога, могут не указывать явно схемы конвертации старых значений кодов в новые, и т.д.
Впрочем, проблема хранения и использования образцовых кодовых данных существует в любом случае, независимо от того, используем ли мы схему «ОбъектУчета.КодNNN», или же схему с реквизитом-разделителем «Вид кода». Однако можно заметить, что при использовании реквизита-разделителя «Вид кода» хранение образцовых кодовых данных становится проще и легче. Не нужно создавать много таблиц (справочников, регистров и т.д.) вида «КодОКПОНормативныеДанные», «КодТНВЭДНормативныеДанные», а можно использовать единую таблицу «ОбразцыКодов» с реквизитом-разделителем. Если не указан владелец кода, то это могут быть образцовые (нормативные данные). Впрочем, образцовые, шаблонные, нормативные, плановые и иные данные, традиционно напрямую не относящиеся к сфере бухгалтерского учета, но тем не менее отражаемые в бухгалтерской базе – это тема отдельной статьи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:41 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Возражения против предлагаемого порядка учета «кодовых данных».
Могут возразить, что, да, при предлагаемом вами подходе, предположим, можно станет добавлять новые виды кодов «на лету». Но алгоритмы то на лету изменить сам пользователь не может, а как без изменения программы (алгоритмов) обрабатывать новые виды кодов или конкретные виды новых кодов?
На это можно возразить так, что и ранее при унаследованном прямом методе хранения кодов вида «ОбъектУчета.КодNNN» точно также не существовало автоматической обработки нового вида кода без изменения алгоритмов.
Также наличие потенциального множества видов кодов потребует переработки диалоговых форм элементов, чтобы была возможность правильно отражать все виды кодов (значения кодов), в том числе и новые, когда общее число видов кодов заранее не известно.
Еще существует проблема получения значения кода. Если раньше, хоть это и выглядело несколько прямолинейно вроде «Контрагент.КодОКПО», но все же работало, то при использовании реквизита-разделителя «Вид кода» нужно обязательно писать универсальную функцию вроде «ПолучитьЗначениеКода(Объект,ВидКода)».


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учет «кодовых данных»
СообщениеДобавлено: 22-06-2017, 03:41 
Не в сети

Зарегистрирован: 02-01-2012, 10:59
Сообщения: 685
Откуда: Астана
Ресурсы по теме.
http://adilet.zan.kz/rus/docs/H12EV000054
http://adilet.zan.kz/rus/docs/H10T0000378#z26
http://adilet.zan.kz/rus/docs/H10T0000378#z10
http://adilet.zan.kz/rus/docs/H10T0000378#z52
http://enstru.kz/




Курсаков С.А.

Дата последнего редактирования – 27 декабря 2016 г.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
РейСРёРЅРі@Mail.ru
Создать форум

cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB