Методика распределения затрат в разрезе дополнительных аналитик

Публикация № 21248

Разработка - Математика и алгоритмы

18
Методика распределения затрат в разрезе дополнительных аналитик или как получить расходы организации в разрезе необходимой аналитики, когда она отсутствует, а менять используемые объекты конфигурации крайне нежелательно.

В качестве предисловия.

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

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

  • получение расходов в разрезе первичных статей затрат и контрагентов (поставщиков) - данная информация используется для выгрузки в базу консолидации холдинга;
  • получение расходов в разрезе активов и документов их возникновения - данная информация используется для точного учета НДС, при использовании нескольких ставок НДС с продаж (18, 0, Не облагается);
  • получение активов и расходов в разрезе видов затрат для НУ (прямые, косвенные, непринимаемые (читай, постоянная разница), внереализационные, временная разница) - данная информация используется для формирования налогового учета на основе данных БУ и настроенных правил ведения НУ.

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

Теперь, по сути.

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

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

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

Как это сделать разберемся по шагам:

Шаг №1. Подготовительный.

Справедливости ради, следует отметить, что внести изменения в конфигурацию все же придется, так как результаты распределения надо где-то хранить, особенно если есть остатки НЗП, полуфабрикатов и готовой продукции. Т.е. необходимо будет создать регистр для 8, регистр или план счетов для 7.7, а также документ, который будет сохранять движения. Однако вносимые изменения не будут осложнять дальнейший процесс обновления конфигурации.

Шаг №2. С чего начать.

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

Ø            Объекты учета - это объекты, в разрезе которых ведется учет финансово-хозяйственной деятельности предприятия - совокупность счета учета и значений характеризующих его аналитических признаков, в разрезе которых производится хранение остатков на счете учета. Для объектов, которые являются конечными получателями затрат, в отличие от всех остальных, критерий хранения остатков на счете учета для аналитических признаков обязательным не является.

 Например, объект учета может быть описан как «Счет» = «20.01», «Субконто1» = «Цех №1», «Субконто2» = «Производство тумбочек». Или так «Счет» = «90.2», «Субконто1» = «Мебель».

Ø            Характеристики затрат - это совокупность аналитических признаков, в разрезе которых необходимо передавать затраты между объектами учета.

 Например, характеристики затраты могут быть описаны как совокупность какого-нибудь значения из справочника «Статьи затрат» и значения из справочника «Контрагенты».

Полученные объекты учета и характеристики затрат занесем в соответствующие таблицы значений:

ТЗ_ОбъектыУчета

Код объекта

Счет учета

Субконто1

Субконто2

...

СубконтоN

 

 

 

 

 

 

 ТЗ_ХарактеристикиЗатрат

Код затраты

Характеристика1

...

ХарактеристикаN

 

 

 

 

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

 

Шаг №3. Заполняем исходные данные для распределения.

На данном этапе необходимо заполнить еще 2 таблицы значений, с которыми собственно и будет вестись основная работа:

ТЗ_ЗатратыКРаспределению

Код объекта

Код затраты

Сумма

 

 

 

 Значение колонки «Сумма» формируется как «Сумма остатка на начало» + «Сумма первичных затрат за период».

- «Сумму остатка на начало» - получаем на основе анализа, созданного хранилища результатов распределения, в разрезе объектов учета и характеристик затрат;

- «Сумму первичных затрат за период» - получаем на основе анализа данных бухгалтерского учета в части движений, в которых происходит первичное накопление затрат на объектах учета в разрезе интересующих нас характеристик затрат.

 

ТЗ_СвязиОбъектов

Код объекта источника

Код объекта получателя

Коэффициент

 

 

 

Эта таблица значений заполняется на основе анализа данных бухгалтерского учета в части движений, в которых происходит перераспределение накопленных затрат от одних объектов учета к другим.

В качестве значения для колонки «Коэффициент» устанавливаем значение кредитового оборота между объектом источником и объектом получателем.

Для корректной работы алгоритма, при наличии у объекта учета остатков, необходимо также добавить строку, в которой код источника будет равен коду получателя, а значение колонки «Коэффициент» будет равно сумме остатка на конец по данным бухгалтерского учета.

Важно! Значение колонки «Коэффициент» должно быть всегда больше 0. Ответ на вопрос, что делать с отрицательными суммами см. ниже в разделе «Подводные камни».

 Примечание. В данной статье Шаг №2 и Шаг №3 выделены как отдельные шаги, исходя из методологических соображений, т.е. для лучшего понимания. При программной реализации рационально выполнение сразу Шага №3 и уже из него выполнять Шаг №2, при появлении новых объектов учета и новых характеристик затрат.

 

Шаг №4. Собственно распределение.

На данном этапе необходимо организовать циклический обход строк таблицы ТЗ_ЗатратыКРаспределению. Критерием выхода из цикла будет отсутствие строк в таблице ТЗ_ЗатратыКРаспределению.

При получении очередной строки основная задача распределить имеющуюся текущую сумму между получателями текущего источника. Получателей и коэффициенты распределения получаем из ТЗ_СвязиОбъектов по значению соответствующего источника.

Результаты записываем в финальную таблицу значений, например, ТЗ_Результаты, которая может иметь следующую структуру:

Код объекта получателя

Код объекта источника

Код затраты

Сумма

 

 

 

 

Если объект получатель не является конечным получателем затрат, то дополнительно добавляем строку в ТЗ_ЗатратыКРаспределению (при наличии в ТЗ строки с «Кодом объекта» = коду объекта получателя и «Кодом затраты» = коду текущей затраты, целесообразно просто увеличивать сумму).

 

Шаг №5. Фиксируем результаты.

Ну, тут все просто скрещиваем ТЗ_Результаты с ТЗ_ОбъектыУчета и ТЗ_ХарактеристикиЗатрат и записываем результат в созданное нами хранилище. Вот и вся методика.

 

В качестве послесловия.

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

Анонсированные подводные камни.

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

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

Кто-то может возразить, что и отрицательный коэффициент не представляет особой сложности. В целом, я соглашусь, но при наличии сложных, циклических взаимосвязей и определенного набора распределяемых затрат, мне решить проблему не удалось. А что более важно - отрицательный коэффициент противоречит экономическому смыслу. Предположим, что в одном периоде Цех №1 списал на Цех №2 100 руб. затрат. В другом периоде выясняется, что было излишне списано 30 руб. => что Цех №1 в текущем периоде должен передать Цех №2 -30 руб. С точки зрения экономического смысла, данная формулировка абсурдна, так как -30 руб. в природе не существует, поэтому неоткуда взять и характеристики данной затраты.

Что делать?! Я знаю 3 варианта решения данной проблемы. Два первых варианта использовались, так как разных Заказчиков устраивала разная точность результатов.

Вариант 1. Первое, что приходит в голову, так это поменять источника и получателя местами, соответственно и знак коэффициента изменится. Дополнительно, конечно, придется где-то запомнить, что при формировании окончательных движений необходимо все вернуть обратно, ну да это не проблема. Таким образом, ситуация становится нормализуется, теперь Цех №2 должен передать Цех №1 30 руб.. Однако может возникнуть ситуация когда от Цех №2 на Цех №1 попадут затраты с такими характеристиками, которых никогда не было у Цех №1 в качестве первичных затрат. Если на это закрыть глаза, то данный вариант вполне сгодится.

Вариант 2. Данный вариант, думаю, тоже не блещет оригинальностью. Предлагается проанализировать все затраты, которые списывались с Цех №1 на Цех №2 за определенный период и распределить между ними соответствующую сумму, причем до общего распределения затрат, тем самым исключив ее из распределения. В данном случае точность отраженной информации, будет зависеть от выбранного для анализа периода - оптимальный вариант с точки зрения точности (но явно не производительности), для каждой сторнировки указывать тот период, к которому она относится. В общем же, вполне приемлемо использовать период с начала квартала или начала года до месяца, в котором проходит распределение.

Вариант 3. Перенести всю ответственность на пользователя. По сути, это Вариант 2, только пользователь все корректирует сам, на основе выведенных ему проблемных сторнировок.

 

P.S. Собственно алгоритм, который создан на основании данной методики заложен в обработку //infostart.ru/projects/5079

18

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Арчибальд 2708 21.07.09 08:46 Сейчас в теме
Данное направление еще ждет своих разработчиков. Есть кое-что готовое, например, http://www.ec-network.ru/index.php?option=com_frontpage&Itemid=1
Однако до завершеня работа далека. Кроме этого, математическая суть расчета себестоимости с помощью графа затрат - это решение системы линейных уравнений с плохо детерминированной матрицей (т.е. не решаемой, скажем, в Екселе). В статье ситуация отличается тем, что незавершенка во вспомогательном цехе считается внутренним оборотом, что не меняет модели (просто вместо свободных членов применяются коэффициенты к "переменной" 1). Но есть ли бухгалтерский смысл (хозяйственное содержание) решения системы?
5. Demarsh 87 21.07.09 13:25 Сейчас в теме
(1) Что ж, я ждал, что раньше или позже эта ссылка всплывет. В таком случае придется сказать, что я стоял у истоков, приведенной по ссылке компании и программного продукта. Правильнее сказать, что как программист, именно я создал систему распределения затрат на платформе 7.7, которая использовала внешнюю библиотеку (по решению систем линейных уравнений), которая в свою очередь используется в вышеупомянутом продукте. К созданию данного продукта на платформе 8.1, я имею лишь косвенное отношение, однако понимание того как он работает мне очень хорошо знакомо.
К созданию собственного алгоритма распределения затрат, меня подтолкнула мизерная проблема, которая может возникать при использовании численных методов решения системы линейных уравнений. А именно возможность зависания копеек разного знака после распределения. Происходит это потому, что решение системы линейный уравнений идет относительно тарифов, т.е. вычисляется стоимость одной единицы "Коэффициента распределения". Например, если в качестве коэффициентов используется количество переданной электроэнергии, то решая систему мы ищем стоимость одного квт/час. Соответственно сумма проводки вычисляется как значение Тарифа*Коэффициент распределения, а так как сумма проводки должна иметь только 2 знака после запятой, то при округлении и возникают злополучные копейки. Теория о том, что если где-то зависла копейка, то пройдя по графу найдем минус копейку - закроем одно на другое и все будет ок, к сожалению не проходит, проверено на распределениях затрат реальных предприятий.
В алгоритме, который я создал, численные методы не используются. Действует простая схема получил затраты - отдал, и так далее пока больше нечего получать. Применение данной схемы позволяет контролировать процесс, поэтому никаких отклонений быть не может.
8. Арчибальд 2708 21.07.09 14:25 Сейчас в теме
(5) Поиск копейки по графу, действительно, крайне неблагодарное занятие. Не следует бескомпромиссно оставаться в математических рамках - см. 4 коммент.
Однако же остается вопрос расчета пресловутых коэффициентов. Или это за рамками статьи? Я понимаю, конечно, что главным в статье является "сквозное" прослеживание затрат от первичных до подажи - и это ценоо и полезно.
10. Demarsh 87 21.07.09 15:44 Сейчас в теме
(8) На самом деле я готов дать ответ или даже написать еще одну статью по поводу коэффициентов, но походу зашорен в своих формулировках и никак не могу понять вопрос.
В принципе, ни статья, ни обработка не предполагают расчета коэффициентов, т.е. в данном случае коэффициенты являются входящими параметрами - откуда они берутся и как рассчитываются остается за кадром. Для работы описанного алгоритма это не важно.
Вкратце, могу выделить следующие схемы для определения коэффициентов:
1. Коэффициенты могут браться из производственных отчетов соответствующих объектов учета, т.е. коэффициенты являются некими натуральными показателями. Например, АТЦ (маш/час), РМЦ (час), Электроснабжение (квт/ч), Котельная (гкал) и т.п. Собственно здесь расчет коэффициентов не происходит, происходит их сбор, на основе первичных документов.
2. Если объект производит некую продукцию (полуфабрикаты). То в качестве коэффициентов может использоваться Количество выпущенной продукции (полуфабрикатов)*Плановую стоимость для каждого наименования продукции. Что в данном случае считать под "Плановой стоимостью" - это вопрос скорее к ПЭО. В зависимости от вида производства данное понятие может принимать разные значения от нормативов до рыночной стоимости.
3. Коэффициенты для движения готовой продукции (полуфабрикатов) берутся такие же как и в п.2, если ведется партионный учет. При учете по средней необходимо также учесть начальные остатки.
4. Коэффициенты определяются пропорционально каким-либо первичным затратам или их совокупности. В основном применяются для общепроизводственных и общецеховых затрат. Здесь, по-моему, тоже никаких проблем - анализируем соответствующие проводки до начала распределения.
5. При использовании директ-костинга, коэффициенты могут рассчитываться пропорционально выручке, выручке (нетто), количеству реализованных товаров (продукции). Тут собственно предварительно анализируем реализацию.
6. Коэффициенты для распределения транспортно-заготовительных расходов - рассчитываются на основании движений тех или иных МТР (материально-технических ресурсов) по сумме или количеству. Соответственно анализируем движения по нужным счетам учета МТР.

Вот, на мой взгляд, основные схемы для получения коэффициентов распределения. Остальные, скорее всего, будут являться производными от вышеперечисленных.
11. Demarsh 87 21.07.09 15:46 Сейчас в теме
(8) Да, что касается тематики данной статьи, то здесь коэффициенты определяются одинаково, как суммы соответствующих движений в бухгалтерском учете.
6. Demarsh 87 21.07.09 13:33 Сейчас в теме
(1) Бухгалтерский смысл (хозяйственное содержание) решения системы - это и есть поиск тарифов, для единицы калькуляции каждого объекта. Т.е. после решения системы мы узнаем фактическую стоимость "чел/часов", "тн/км", "квт/час", "гкал" и т.п.
2. Арчибальд 2708 21.07.09 09:00 Сейчас в теме
Реализация похожей модели в Бух 7.7 потребовала только добавления трех документов: "НезавершенкаВспомогательного", "ОтчетЦеха" и "Себестоимость". Последний как раз и служит для хранения результатов решения системы линейных уравнений (решает систему в процессе проведения). Сопровождаемость/обновляемость, как правильно указывается в статье, при этом сохраняется (см. http://infostart.ru/blogs/1040/ )
3. Ish_2 1037 21.07.09 09:20 Сейчас в теме
(2)" решает систему в процессе проведения"

Извиняюсь , каким методом ? Проверяется вырожденность матрицы (detA=0) ?
Возможны ли плохо обусловленные матрицы ?
4. Арчибальд 2708 21.07.09 13:07 Сейчас в теме
(3) Метод Гаусса (приведение к верхнетреугольному виду). Это как раз для плохо обусловленных матриц. И пузырьковая сортировка строк.
А от вырожденности спасают два обстоятельства. Во-первых, мы же имеем дело с приближенным решением (руб. коп.), что снижает вероятность зануления детерминанта. Во-вторых, мы работаем не с самой себестоимостью, а с отклонениями от плановой, т.е. если не удается вычислить отклонение, то оно считается нулевым и в расчетах не участвует.
7. Ish_2 1037 21.07.09 13:48 Сейчас в теме
(4) Дело в том , что я как-то столкнулся с решением СЛАУ в 1с и пробовал устойчивую и очень простую разновидность метода сопряженных градиентов для произовльной матрицы А(m,n) с нахождением обобщенного решения (нормального псевдорешения).
Если будет желание , как-нибудь обсудим.
9. Арчибальд 2708 21.07.09 14:27 Сейчас в теме
(7) Шо, невыпуклая задача была?
13. Ish_2 1037 21.07.09 20:59 Сейчас в теме
(9) Ага.
Но А*А=А*b ,где А*-транспонированная, и задача становится выпуклой.
Нужен был простой и всегда сходящийся, тупой алгоритм.
Чтоб никаких сложных операций , кроме умножения матрицы на вектор и скалярного произведения ,не было.
Для 1с достаточно.
14. Ish_2 1037 21.07.09 21:17 Сейчас в теме
12. Арчибальд 2708 21.07.09 15:50 Сейчас в теме
(10, 11) Понятно. За пределами темы статьи.
15. Grey 21.08.09 02:12 Сейчас в теме
Похоже от бухгалтерии ушли в численные мат. методы
16. adva 39 06.03.14 15:27 Сейчас в теме
Спасибо за публикацию, как раз понадобилось решить задачу, в ней описанную, а нет ли еще публикаций на данную тему, что-то кроме этой ничего не выдало?
Оставьте свое сообщение

См. также

"Хочу универсально!" [Часть 1] 65

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования Разработка

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

02.09.2019    3756    SeiOkami    35       

Иерархия без "В ИЕРАРХИИ" 112

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    4188    ildarovich    16       

EnterpriseData – часть 3. Загрузка данных, идентификация объектов 61

Статья Программист Нет файла v8 v8::УФ 1cv8.cf ОС Бесплатно (free) Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    3189    ids79    7       

Обработчики событий при записи объектов. Зачем и что за чем? 189

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    9896    4    AlbinaAAA    22       

FizzBuzz на 1С. Чем короче, тем веселее. Варианты принимаются... 8

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Мне было скучно, я не мог себя заставить написать ничего полезного. И читал статью на Хабре. Потом я читал комментарии, а потом... нет я не ушел смотреть котиков на ютюбе. Я решил сделать несколько решений задачки FizzBuzz на 1С, с целью "чем короче, тем лучше". Прошу сильно не пинать, это просто развлечение для вечера.

24.07.2019    2547    vandalsvq    16       

Управление качеством кода 122

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    6722    Stepa86    23       

Что делает "В ИЕРАРХИИ" в запросе? 85

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    6428    YPermitin    29       

Создание отчетов с помощью СКД - основные понятия и элементы 188

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    16743    ids79    16       

Реализуем Стек, Очередь и Приоритетную очередь в 1С 50

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

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

24.06.2019    6979    RonX01    63       

Организация хранения промежуточных данных 3

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Организация хранения промежуточных данных в процедуре сверки.

29.05.2019    1675    scientes    1       

Вычисление 200 тысяч знаков числа pi 73

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    3521    Oleg_nsk    93       

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты 81

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Описание работы платформы 1С:Предприятие 8.2 с виртуальной таблицей "Обороты" регистров накопления.

20.05.2019    9529    YPermitin    4       

Даем названия переменным: как префиксы экономят наше время 10

Статья Программист Стажер Внешняя обработка (ert,epf) v8 Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Понятные названия переменных экономят время и силы разработчика : в начале, когда мы даём названия переменным, в процессе развития разработки, когда мы "на лету" понимаем назначение той или иной переменной, в конце, когда мы передаём разработку на поддержку других программистов, сами переходя к новым разработкам

06.05.2019    2846    Designer1C    69       

Заметки по SQL: Срез последних - аналог запроса 15

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Математика и алгоритмы

В статье описывается создание среза последних данных средствами классического языка запросов. Причем метод построения запроса был разработан еще во времена, когда автор работал с СУБД Oracle 9i и программировал на PL SQL. Основная идея заключается преобразовании запроса с подзапросом, в запрос без подзапроса (в примерах описывается преобразование до двух вложенных подзапросов). Запросы тестировались на реальных базах данных. Платформа - 1С:Предприятие 8.3 (8.3.10.2561).

15.01.2019    5748    IVC_goal    5       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 125

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    20498    ids79    40       

Закрытие остатков по регистрам накопления 7

Статья Программист Нет файла v8 УПП1 УУ Закрытие периода Бесплатно (free) Практика программирования

Гибкий способ закрытия остатков по регистрам накопления. ДЛЯ ПРОГРАММИСТОВ, НЕ ДЛЯ БУХГАЛТЕРОВ.

24.10.2018    3943    kosmo0    2       

Своя операция в закрытии месяца? Легко! 69

Статья Программист Нет файла v8 ERP2 1С:Франчайзи, автоматизация бизнеса Россия БУ Закрытие периода Бесплатно (free) Закрытие периода

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

04.09.2018    8836    Shmell    3       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 144

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы Практика программирования

У многих начинающих 1С программистов часто возникают вопросы про клиент-серверное взаимодействие в 1С и чтобы разобраться в непростых механизмах платформы, необходимо понять, что же такое контекст, для чего предназначены директивы компиляции, что представляют собой контекстные/внеконтекстные вызовы и как наиболее оптимально описывать прикладные задачи в модулях управляемых форм.

23.08.2018    20804    Rain88    42       

Теорема номер тринадцать 15

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Использование математических методов для языка запросов.

15.03.2018    8922    vasilev2015    24       

Введение в CI для 1С 87

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

Значение роли тестирования при разработке ПО трудно переоценить, его применение позволяет повысить надёжность продукта и улучшить качество кода. Для продуктов для платформы 1С:Предприятие существует ряд инструментов для проведения тестирования, в том числе и от самого вендора. Но, также появились открытые инструменты, реализующие мировые практики проведения тестирования (проверки продукта), поддерживаемые сообществом. В этой статье описаны базовые принципы, которые необходимо понимать перед началом применения этих инструментов.

21.11.2017    18708    real_MaxA    22       

Как работает серверный вызов в 1С 455

Статья Программист Нет файла v8::УФ Бесплатно (free) Математика и алгоритмы

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    42541    pahich    75       

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Универсальные функции

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

12.10.2017    14399    for_sale    58       

Групповая разработка конфигураций в крупном холдинге 68

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

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

15.08.2017    16955    stas_ganiev    15       

Как исправить код 26 в книге продаж дополнительными листами (НЕОЧЕВИДНОСТИ КОРРЕКТИРОВКИ НДС) 11

Статья Бухгалтер Нет файла v8 v8::БУ БП3.0 Россия БУ Закрытие периода НДС Бесплатно (free) Бухгалтерский учет

Инструкция для Бухгалтерия Предприятия 3.0 по исправлению в разделе продаж декларации НДС кода 26 на 01 через доплист . (в 2.0 схема та же).

17.06.2017    16268    ansonat    0       

Автоматизация процесса 1С-разработки 91

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

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

07.06.2017    22462    ekaruk    9       

Пишем игру Минер. Обработка событий ActiveX в 1С 29

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Математика и алгоритмы

Пример демонстрирует обработку событий генерируемых компонентой ActiveX в 1С.

29.05.2017    12360    user621724_Dimav1979    11       

Как я доступ на kb.1c.ru получал 90

Статья Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист Математика и алгоритмы

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    21948    ikekoval    33       

Улучшение стандарта "Структура модуля" 6

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Математика и алгоритмы

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

26.03.2017    11888    o.nikolaev    23       

Расчет себестоимости и его Откат в ERP: практика применения 66

Статья Программист Нет файла v8 ERP2 Россия УУ Закрытие периода Учет ТМЦ Бесплатно (free) Практика программирования

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

08.02.2017    35865    kristina    24       

"Распределение в запросе" или "избавляемся от перебора" 182

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Математика и алгоритмы Универсальные функции

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    27658    alexandersh    45       

Планы обмена. Квитировать или гарантировать? 24

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Математика и алгоритмы

Планы обмена предлагают использовать две стратегии удаления обработанных изменений: квитирование и гарантированная доставка сообщений. Как сделать правильный выбор?

12.12.2016    14131    zhichkin    9       

Некоторые принципы оптимизации запросов 1С (+SQL) 115

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Разработка нового функционала часто связана с созданием новых таблиц в базе и написанием запросов. Собственно, размышляя о запросах, мы и формируем в голове содержание таблиц, индексы и количество таблиц и индексов. Заранее можно уверенно рассуждать о том, какая нужна архитектура, если задачу удалось понять. На этом этапе важно привлекать свой опыт. Что же делать, если его нет? Как рассуждать о запросах и формате хранения?

17.11.2016    8568    ture    40       

Использование git для доработки типовых конфигураций 1С 229

Статья Программист Нет файла v8 Беларусь Украина Россия Бесплатно (free) Математика и алгоритмы

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

11.10.2016    185606    pumbaE    31       

Оптимизация запросов 1С:Предприятие – от теории к практике 114

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

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

07.10.2016    30876    bpc222    20       

Регистры сведений 1С. Как это устроено. 710

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Основная идея публикации - собрать в одном месте информацию о внутреннем устройстве такой абстрактной сущности, как "Регистр сведений 1С" и ответить на ряд вопросов: Что происходит при записи регистра в различных режимах? Что такое на самом деле "СрезПервых" и "СрезПоследних"? Как оптимально выбрать структуру регистра? Это та информация, владея которой, начинаешь лучше понимать как это работает и как правильно использовать регистры сведений.

05.08.2016    145826    Sergey.Noskov    154       

Переводим расширения на 8.3.8. Памятка. 79

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Математика и алгоритмы

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

29.07.2016    38688    mrXoxot    12       

Опыт практического применения методики BDD на 1С. Написание сценариев 121

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

Эта статья открывает цикл публикаций, в которых я хочу поделиться опытом использования методики BDD при разработке на 1С. В этой статье речь пойдёт о написании сценариев.

03.07.2016    19933    oleynik.dv    132       

Заметки про запросы. Последовательность. 109

Статья Программист Нет файла v8 Windows Бесплатно (free) Математика и алгоритмы Практика программирования

Рассуждения, основанные на контрпримерах. Определяем последовательность операций с помощью одной только консоли запросов. Версия 2.

27.05.2016    28892    vasilev2015    31       

Оптимизация планирования доставки грузов. Алгоритм кластеризации k-means (метод K-средних). 26

Статья Программист Нет файла v8 УТ10 УПП1 Windows Бесплатно (free) Математика и алгоритмы

Что такое кластеризация? Это объединение объектов в непересекающиеся группы, называемые кластерами, на основе близости значений их атрибутов (признаков). В результате в каждом кластере будут находиться объекты, похожие по своим свойствам друг на друга и отличающиеся от тех, которые расположены в других кластерах. При этом, чем больше подобие объектов внутри кластера и чем сильнее их непохожесть на объекты в других кластерах, тем лучше кластеризация.

10 стартмани

09.02.2016    25957    mi1man    4       

Расчёт себестоимости в 1С УПП 1.3. Инструкция по подготовке 77

Статья Бухгалтер Нет файла v8 КА1 УПП1 Россия БУ НУ УУ Windows Закрытие периода Производство готовой продукции (работ, услуг) Учет ТМЦ Учетная политика Ценообразование, анализ цен Бесплатно (free) Управленческий учет (прочее) Бухгалтерский учет

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

23.11.2015    62864    Vikki-di    12       

Учет сторонних работ для нужд фирмы 3

Статья Бухгалтер Нет файла v8 КА1 УПП1 Россия БУ Windows Закрытие периода Производство готовой продукции (работ, услуг) Учет ТМЦ Ценообразование, анализ цен Бесплатно (free) Управленческий учет (прочее) Бухгалтерский учет

Какие-то работы наша фирма сама сделать не может, поэтому мы отдаём материалы и полуфабрикаты другим контрагентам, чтобы те сделали работу за нас и вернули уже готовые изделия. Иначе это ещё называют внешней кооперацией. Наглядная инструкция по учёту сторонних доработок в 1С УПП 1.3.

23.11.2015    13608    Vikki-di    1       

Контур.EDI изнутри, или история командной разработки тиражного продукта на 1С 174

Статья Программист Нет файла v8 Россия УУ Windows Оптовая торговля Бесплатно (free) Интеграция Практика программирования Математика и алгоритмы

“Система - больше, чем просто совокупность ее элементов”; “Несколько разработчиков - это еще не команда разработки”. Расскажу, как мы прочувствовали эти очевидные утверждения на своей шкуре.

17.11.2015    35319    skif47    88       

Порядок записи движений регистров при проведении документа 94

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

Когда-то была программа 1С седьмой версии, и все программисты знали: если нужно проанализировать и/или исправить движения документа - смотри модуль документа, процедура ОбработкаПроведения(). В 1С 8 все гораздо сложнее. Кроме модуля проведения есть еще подписки на события, а также движения документа может "создавать" не сам документ. Эта статья о том, как происходит проведение и в какой момент записываются движения документа по регистрам.

13.11.2015    77956    triton_tver    8       

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия 51

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Разработка внешних компонент Математика и алгоритмы

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    41392    Serginio    35       

Три способа получить дерево элементов иерархического справочника 50

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Рассматривается применимость и недостатки следующих способов получения дерева 1) Запрос с использованием итогов по иерархии 2) Формирование дерева обходом выборки с упорядочиванием по иерархии 3) Формирование иерархии по списку элементов транзитивным замыканием

11.11.2015    61058    32ops    9