Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/47f4da09ab16352a131d8eb565417c91 to your computer and use it in GitHub Desktop.
Save anonymous/47f4da09ab16352a131d8eb565417c91 to your computer and use it in GitHub Desktop.
1с регистр расчета виртуальные таблицы

1с регистр расчета виртуальные таблицы



Тестовая конфигурация с примером из статьи. В статье " Регистры накопления. Структура хранения в базе данных " мы рассматривали таблицы, которые использует платформа для хранения движений в регистрах накопления, а также его итоговых оборотов или остатков в зависимости от вида регистра "Остатки" или "Обороты". Также были подробно рассмотрены действия платформы с таблицами остатков и оборотов при записи движений в регистр. Сегодня в статье проанализируем SQL-запросы, формируемые платформой, при обращении к виртуальным таблицам регистра. Напомню, что у регистров накопления существует всего три виртуальных таблицы:. Как мы видим, кроме физической таблицы движений, для которой в базе данных создается отдельная таблица, также имеются виртуальные таблицы. Главное отличие виртуальных таблиц от физических: При выборке данных из виртуальной таблицы платформа формирует некоторый запрос в зависимости от переданных параметров, который может получать записи из двух и более таблиц для формирования конечного результата. Далее в статье проанализируем SQL-запросы платформы 1С: При этом будем выполнять запросы при различных комбинациях параметров. Отмечу, что для экспериментов использовал простую тестовую конфигурацию, ссылка на которую приведена в конце статьи. Структура хранения в базе данных ". Используемая версия платформы 8. Начнем анализ с виртуальной таблицы "Обороты", так как она присутствует вне зависимости от вида регистра. Виртуальная таблица "Обороты" есть, как у регистра накопления с видом "Обороты", так и с видом "Остатки". Посмотрим состав полей таблицы оборотов на примере регистра "ОстаткиНоменклатуры". В нем содержатся поля каждого из измерений, а также поля "Приход", "Расход" и "Оборот" для каждого из ресурсов в регистре. В нашем случае у нас два измерения "Номенклатура" и "Склад" , а также три поля "КоличествоПриход", "КоличествоРасход" и "КоличестоОборот". Главной особенностью любой виртуальной таблицы является возможность указать параметры. Установленные параметры кардинальным образом могут изменить SQL-запрос платформы к базе данных, поэтому понимать их назначение - это обязанность любого разработчика на платформе 1С: В зависимости от установленного параметра "Периодичность" в состав доступных полей вирт. Теперь напишем простой запрос для получения оборотов по номенклатуре за период. При выполнении запроса платформа сформирует два SQL-запроса к базе данных. Первый запрос получает настройки регистра накопления:. Используя эти настройки, платформа формирует SQL-запрос непосредственно на получение оборотов. Вот так выглядит SQL-запрос платформы для получения оборотов:. Старался подробно раскомментировать весь запрос. Если будут непонятные моменты, то прошу в комментарии. Исходный текст запроса на языке 1С: Предприятия выглядит следующим образом:. В случае, если для виртуальной таблицы также устанавливается параметр "Периодичность", например, в значение "Месяц", то SQL-запрос немного видоизменится:. Если в виртуальной таблице периодичность установлена "Авто", то в SQL-запросе будут содержаться поля периода для каждой из получаемой в запросе периодичности "День", "Месяц", "Год" и т. Причина, по которой платформа хранит значения периода с увеличением части даты "Год" на лет мне не известна. Если кто из читателей подскажет, буду благодарен. Мы с Вами рассмотрели SQL-запросы платформы при работе с виртуальной таблицей "Обороты" регистра накопления с видом "Остатки". Как мы видим, виртуальная таблица "Обороты" в этом случае берет данные из таблицы движений регистра. Даже, если обороты в запросе получаются за несколько месяцев, необходимые данные будут также формироваться по таблице движений без использования каких-либо сохраненных ранее итогов. И это понятно, регистр накопления с видом "Остатки" предназначен для учета остатков, а не оборотов. Далее мы увидим, почему для решения задач учета оборотов лучше использовать соответствующий вид регистра накопления. Виртуальная таблица "Обороты" включает в себя поля для каждого из измерений регистра, а также по одному полю на каждый ресурс. Для оборотного регистра "ДвиженияНоменклатуры" из тестовой конфигурации состав полей таблицы следующий: Как и в предыдущем случае, в зависимости от параметра "Периодичность" в составе доступных полей появятся соответствующие периоды. И так, выполним несколько запросов к таблице "Обороты" и проанализируем SQL-запросы платформы. Первый запрос на языке запросов платформы:. Запрос принимает также три параметра: Как начало периода возьмем начало года, конец периода - 13 апреля Первым делом платформа 1С: Предприятие получит настройки регистра накопления, к которому выполняется запрос. Запрос будет идентичный рассматриваемому ранее примеру, пойдем дальше. Сформированный платформой SQL-запрос тогда будет такой:. К комментариям в приведенном тексте добавлю, что вне зависимости от значений параметров "НачалоПериода" и "КонецПериода" запрос пытается получить данные и из итоговых таблиц, и из таблицы движений регистра. Если в запросе на языке платформы мы добавим использование параметра "Периодичность" например, поставим значение "Месяц" , то SQL-запрос платформы изменится аналогично рассмотренному примеру для регистра накопления с видом остатки. Будут добавлены поля выбранных периодов "ПериодДень", "ПериодМесяц" и т. Для нашего примера это месяц. Поля и группировки будут добавлены для всех вложенных запросов и, конечно, содержаться в результатирующей выборке. В нашем примере, выражения в поле запроса для получения периода будет таким:. Эксперименты с регистром показали, что для виртуальной таблицы "Обороты" платформа 1С: Предприятие 8 имеет разный принцип построения SQL-запросов к базе данных в зависимости от вида регистра накопления "Остатки" или "Обороты". Если вид регистра - "Остатки", то SQL-запрос получает данные по оборотам непосредственно из таблицы движений. В случае, если вид регистра "Обороты", то тогда уже используется таблица итогов оборотов и запрос работает более оптимально, нежели чем для регистра остатков. По схеме видно, что наиболее оптимальным образом платформа работает с виртуальной таблицей "Обороты" для регистра накопления с видом "Обороты", поскольку использует рассчитанных итоги по оборотам в разрезе месяцев. И лишь в тех случаях, когда рассчитанных итогов для периода нет, тогда использует таблицу движений. Для регистра вида "Остатки" всегда используется таблица движений вне зависимости от настроек хранения итоговых записей. Именно поэтому следует внимательно отнестись к настройке вида регистра накопления при проектировании структуры метаданных конфигурации. Интересен тот факт, что если для регистра накопления отключить использование итогов, то тогда запрос к виртуальной таблице "Остатки" станет невозможным. Будет появляться такая ошибка:. Причем, данная ошибка будет не смотря на то, что виртуальная таблица "Обороты" для регистра накопления с видом "Остатки" использует только таблицу движений. В следующих статьях будет рассмотрена работа платформы с виртуальными таблицами "Остатки" и "Остатки и обороты". Платформа 1С Платформа 1С Лента Блог Видео Разработки Онлайн-инструменты. NET Блог Разработки V8Formats. Об авторе Контакты План работ. Обороты 23 июня Тестовая конфигурация с примером из статьи Виртуальные таблицы В статье " Регистры накопления. Напомню, что у регистров накопления существует всего три виртуальных таблицы: Последние две становятся доступными только если вид регистра установлен как "Остатки". Сторона СУБД Отмечу, что для экспериментов использовал простую тестовую конфигурацию, ссылка на которую приведена в конце статьи. Первый запрос получает настройки регистра накопления: Вот так выглядит SQL-запрос платформы для получения оборотов: Предприятия выглядит следующим образом: Первый запрос на языке запросов платформы: Сформированный платформой SQL-запрос тогда будет такой: В нашем примере, выражения в поле запроса для получения периода будет таким: Принцип получения значений периода был описан выше для регистра с видом "Обороты". Если представить действия SQL-запросов схематично, то выглядеть это будет примерно так: Будет появляться такая ошибка:


50+ советов для успешной сдачи 1С: Специалист по платформе


На нашем сайте лучшие программисты 1С делятся своим опытом и разработками. Доступ к уникальному, самому полному хранилищу отчетов и обработок для 1С. Более 30 отчетов, обработок и компонент на одном сайте! Управление - Пользователю системы. ЗУП для начинающих программистов. Новичку сложно самому разобраться в структуре и взаимосвязях процедур и функций , предназначенных для расчета, а еще сложнее понять почему все сделано именно так. Для таких программистов и предназначена эта статья. В статье рассматриваются только самые сложные механизмы конфигурации, связанные с проведением расчетов. Описание составлено с использованием украинской версии конфигурации редакции 2. Также справедливо все написанное для соответствующих подсистем УПП редакции 1. При разработке типовой конфигурации ЗУП Зарплата и Управление Персоналом для платформы 8, компания 1С преследовала две важные цели: Скорость производительность выполнения расчетов. Возможность ручной корректировки результатов расчета. Именно эти проблемы больше всего беспокоили пользователей и программистов в конфигурации ЗиК Зарплата и кадры для платформы версии 7. Побочным неудобством решения этих проблем в конфигурации ЗУП является сложность понимания основных механизмов конфигурации и как следствие сложность доработки. Д ля проведения расчетов конфигурация ЗУП использует регистры расчета. Регистры расчета обладают следующими уникальными свойствами, которые не присущи другим типам регистров: Конкуренция по периоду действия. Регистрация необходим ости перерасчетов. Эти уникальные свойства регистров расчета, а также связанные с ними виртуальные таблицы подробно описаны в книгах М. Также на эту тему есть хорошие видеокурсы…. В большинстве случаев структура табличных частей документов совпадает со структурой соответствующих регистров расчета. Большинство модулей расчетных документов реализовано однотипно. В модуле расчетного документа обычно содержатся процедуры: ЗаполнитьНачисления или аналогичная, предназначенная для заполнения табличной части документа. РассчитатьНачисления или аналогичная, предназначенная для расчета табличной части документа. Выполняется запрос по табличной части документа: Создаются рабочие наборы записей необходимого ых регистра ов расчета: В цикле обходится результат запроса. Каждая строка проверяется на правильность заполнения и добавляется в наборы созданные на шаге 1: Наборы записываетсяются в регистры: Если табличная часть документа некорректно заполнена и какая-то строка не прошла проверку на заполнение, то наборы очищаются и пустые наборы записываются в регистры. Далее расчет не производится: Если все хорошо, то в наборы добавляются записи сторно, для чего используется механизм дополнений регистра расчета: Подробнее об этой функции можно почитать в синтаксис-помошнике. Наборы опять записываются в регистры. В процедуре выполняется расчет записей набора регистра расчета по определенным алгоритмам. Также процедура обновляет результаты расчета в табличной части документа. Наборы очищаются и пустыми записываются в регистры: Записывается и сам документ: Таким образом в табличной части документа появляются рассчитанные данные. При проведении документа расчета его табличная часть, соответствующая регистру расчета, просто записывается в регистр расчета и никакие вычисления уже не производятся. Здесьу начинающего программиста может возникнуть два вопроса: Почему нельзя выполнить расчеты при проведении документа? Как и когда при расчете используются уникальные свойства регистров расчета? Ответ на первый вопрос: Именно после расчета и до проведения документа пользователь может корректировать расчеты. При проведении в регистры расчета запишутся уже исправленные данные. Кстати откорректированные строки помечаются специальным признаком и при последующих расчетах не изменяются. Ответ на второй вопрос: Совместно с регистрами расчета в конфигурации используются планы видов расчета. Планы видов расчета представляют собой списки всех начислений и удержаний, расчет которых возможен в конфигурации. В планах видов расчета описываются специфические свойства начислений и удержаний видов расчета , используемых при расчете. Самыми важными свойствами видов расчета в конфигурации являются: Для чего это надо рассмотрим на примере. Очевидно, что при расчете премии уже должно быть рассчитано начисление по окладу. Так как способы расчета задаются в перечислении, то список алгоритмов конфигурации ограничен, и пользователь не имеет возможности добавить новый алгоритм. Точнее, пользователь имеет возможность использовать универсальные способы расчета, в которых можно задавать различные формулы, но многие не используют эту возможность, а просят программиста добавить новый способ расчета. Еще важно понять, что категория и способ расчета не являются встроенными предопределенными реквизитами плана видов расчета, поддерживаемые на уровне платформы, поэтому их обработка выполняется средствами прикладного решения - конфигурации. Результатами расчета являются ВСЕ ресурсы регистра расчета. Перед вызовом в документах формируется и записывается набор записей, который будет рассчитываться. Определяется список видов расчета, которые необходимо рассчитать: Выполняется запрос по плану видов расчета. Выбираются различные категории, способ и показатели расчетов. Выборка ограничивается видами расчета из списка. Результат группируется и упорядочивается по категории расчета. Далее для каждой категории составляется массивы способов и показателей расчета: Параметрами вызова являются массивы способов и показателей расчета. Функция возвращает структуру флагов необходимых данных, значение каждого флага элемента которой может принимать булево значение. Рассчитывается фактический период действия записей набора: Записать Истина , ТолькоЗапись ;. При расчете следующих категорий набор будет записан без расчета фактического периода действия, что значительно повышает производительность выполнения расчетов. КатегорияРасчета , НеобходимыеДанные , Регистратор , Организация , ПериодРегистрации , , Сотрудники , КомментироватьРасчет ;. Функция возвращает выборку из результата запроса, полями которого являются исходные данные для ВСЕХ расчетов текущей категории. РассчитатьЗаписиНабора ИсходныеДанные , НаборЗаписейРегистра , НеобходимыеДанные , ТабличнаяЧастьДокумента , МассивИндексыСтрокТабличнойЧасти , КомментироватьРасчет ,, СотрудникиРасчетОтОбратного ;. После расчета набор записей регистра опять записывается, но уже без расчета фактического периода действия: Обычно эта процедура не требует доработок. Функция возвращает структуру флагов необходимых для расчета данных, значение каждого флага элемента которой может принимать булево значение. Текст функции можно разделить на три части: Вставить "БазаУдержаний" , Ложь ; Обход массива способов расчета и установки флагов, необходимых данных для каждого способа: Обход массива показателей расчета и установки флагов, необходимых данных для каждого способа: Категорически не рекомендуется для нового способа расчета устанавливать те флаги, которые для его расчета не нужны, так как это понижает производительность! Если новый способ расчета требует новых флагов, то их необходимо добавить в первую часть процедуры. Функция анализирует флаги необходимых данных, составляет по ним текст запроса и возвращает выборку из результата запроса, полями которого являются исходные данные для вычисления ВСЕХ видов расчета текущей категории. Текущая категория передается в функцию через один из параметров. Текст функции можно разделить на две части: Определение текстов вложенных запросов с использованием временных таблиц;. Анализ флагов необходимых данных, составление по ним текста запроса и установка параметров запроса. В конце функции выполняется запрос и возвращается результат запроса. Использование итогов в запросе и обход по группировкам необходим для поддержки режима комментирования расчета, а именно для возможности расшифровки базы. Первая часть находится выше строки: В большинстве вложенных запросов основной таблицей является выборка из рассчитываемого регистра расчета, которая должна соответствовать рассчитываемым записям: В подобных запросах используется отбор по регистратору и признаку авторасчета: Так как такие вложенные запросы связываются с основным по номеру строки, индексировать их временные таблицы нужно также по номеру строки: Во второй части в зависимости от имени регистра расчета создается текст запроса. Вторую часть функцию можно разделить также на две части: Добавление в запрос текстов левых соединений. ОсновныеНачисленияРаботниковОрганизаций Как Основной" ;. ОшибкаВводаОтработанногоВремени, ЛОЖЬ КАК ОшибкаВводаОтработанногоВремени, Во второй части в запрос добавляются тексты необходимых левых соединений. При этом анализируются флаги необходимых данных. Для каждого флага, если он установлен, заполняются соответствующие временные таблицы: УстановитьПараметр "ПоДням" , Перечисления. УстановитьПараметр "ПоЧасам" , Перечисления. До выполнения вложенного запроса необходимо установить параметры запроса. Временные таблицы добавляются к основному запросу с помощью левого соединения: В конце составления текста запроса добавляются условия: Для начислений внешнее условие определяется так: То естьданные для расчета будут получены только для записей текущей категории. Самыми сложными данными для расчетов, определяемыми в процедуре, являются: Данные о часовой тарифной ставке. Данные о норме времени. Сложность первых трех заключается в том что результаты определяются из нескольких вложенных запросов по определенному приоритету если результат не получен из одного запроса, то он берется из другого. В данном примере определяется количество отработанных дней по следующему приоритету: Если введен подробный табель, то данные берутся из него. Иначе если введен сводный табель, то данные берутся из него. Иначе если введен индивидуальный подробный график, то данные берутся из него. Иначе если введен сводный индивидуальный график, то данные берутся из него. Иначе данные берутся из общего графика. В зависимости от того из какого источника определены данные поле принимает значение 1, 2, 3 или 4. Впоследствии это применяется для комментирования расчета и очень удобно для пользователя. Эти поля тоже используются для комментирования расчета. Если в структуру необходимых данных был добавлен новый флаг, то его обработку необходимо добавить в эту функцию. Если флагу необходимы временные таблицы, то тексты их определения необходимо поместить в первую часть функции по аналогии с существующими. Временные таблицы вложенных запросов обязательно индексировать по тем полям, по которым они будут связанны в левом соединении с основным запросом в основном, это номер строки. В запросах к регистру расчета нужно применять условия на регистратор и признак авторасчета: Не помешает условие и на категорию расчета, но в типовой конфигурации почему-то не применяется. Для повышения производительности во внешнее условие, которое ограничивает состав записей, для которых определяются необходимые данные, можно добавить условие на признак авторасчета. Для повышения производительности можно переписать получение данных базы без использования виртуальной таблицы: ВидРасчета Как База ПО База. Еще лучше оформить это с применением временной таблицы. Запись набора рассчитывается только если для нее найдены необходимые данные для расчета: Если в процедуру через параметр передана табличная часть документа, то выполняется поиск нужных строк для заполнения в них результатов расчета из рассчитанной строки набора: Если передан массив конкретных строк документа, то строка табличной части определяется: РассчитатьЗаписьРегистраРасчета СтрокаДвижений , ИсходныеДанные , НеобходимыеДанные , УправленческиеРасчеты , РегламентированныеНачисления , РегламентированныеУдержания , ОсновныеНачисленияОрганизаций , ВзносыВФонды , КомментироватьРасчет , ФормаКомментариев , ГрафикиБезРабочегоВремени ;. Результаты расчета при этомсохраняются в рассчитываемой записи. Стоит отметить, что результат ом расчета является не только рассчитанная денежная сумма, но и оплачиваемое время в днях или часах. Если определена строка табличной части документа см. В зависимости от установленных в виде расчета признаков ЗачетОтработанногоВремени, ЗачетНормыВремени и ЗачетКалендарных в рассчитанной записи и, если надо, в строке табличной части заполняются реквизиты об отработанном времени, норме времени и календарных днях. Данная процедура почти никогда не требует доработок. В этой процедуре выполняется связанный с указанным в записи способом расчета алгоритм. В каждом блоке реализован алгоритм расчета для одного способа расчета. Большинство реальных начислений оплачивают определенное время отработанное или не отработанное. Сторно ,- 1 , 1 ;. В конфигурации предусмотрен режим проведения расчетов с комментированием в процессе расчета выдаются сообщения со значениями параметров и промежуточных результатов. Для способов расчетов, использующих базу сумму результатов других начислений при комментировании расшифровывается база до базовых видов расчета. Выбрать ; Пока РасшифровкаБазы. В этой процедуре допускается применение только простейших действий арифметические, максимум, минимум с исходными данными и рассчитываемой строкой движений набора,не должно быть никаких запросов. Анализа ошибок определения отработанного времени;. Формирования текстов комментариев если включен режим комментирования. В конфигурациях эта функция применяется только для начислений за отработанное время. При этом формируются соответствующие сообщения об ошибках. Интерактивность заключается в возможности открытия объектов справочников, документов по клику мышки на тексте описания этого объекта в комментарии. В начале статьи были описаны две важные цели разработки конфигурации ЗУП. Самая трудоемкая операция — это получение исходных данных для расчетов организована таким образом, что данные для расчета всех записей набора определенной категории выбираются за один раз. При этом вся нагрузка ложится на SQL сервер. В следующие процедуры надо просто добавить если необходимо способ расчета в список. Если в структуру необходимых данных были добавлены новые флаги, то их обработка должна производиться в функции "ПолучитьДанныеДляРасчета". Данный материал полезен программистам, имеющим опыт работы с конфигурацией ЗиК 7. Аналог в платформе 8. Автоматически вытеснение не срабатывает и перерасчеты тоже. Записи можно вносить только документами. Встроенный реквизит регистра расчетов. Встроенного реквизита регистра нет. Текущий период регистра расчетов. Записи могут вносится в регистр расчета с любым периодом регистрации. Виды расчетов можно добавлять в режиме предприятия. Прикладная конфигурация должна самостоятельно следить за последовательностью расчета. Список вытесняющих видов расчета можно изменять в режиме пользователя. Автоматически перерасчеты не производятся, а только регистрируется их необходимость в отдельных таблицах. В прикладной конфигурации графики работы и календари реализованы с применением регистров сведений. По сравнению с 8 в 7. Из-за этого иногда не хватало универсальности. В 8 универсальности больше, но и программисту работы добавилось. Период регистрации определяется по текущему периоду регистра расчета. Период регистрации указывается в отдельном реквизите шапки каждого документа. Больше десятка регистров сведений для хранения всех законодательно установленных значений. Используются регистры накопления остатков переходящие остатки считаются автоматически: В ЗУП в отличие от ЗиК есть удобная возможность ручного исправления результатов всех автоматических расчетов. В ЗиК расчет каждой записи журнала расчетов происходит независимо от остальных. При этом все данные для расчета надо выбирать из базы заново даже если мы их уже выбирали для расчета предыдущей записи. То есть при расчете каждой записи данные выбираются из базы, рассчитываются и в базу записывается результат. В ЗУП сначала выбираются данные из базы для расчета всех почти всех с учетом зависимости записей регистра расчета, выполняется расчет и результаты расчета записываются в базу опять для всех записей. Тип файла Нет файла. Платформа Платформа 1С v8. Зарплата и Управление Персоналом 2. Операционная система Не имеет значения. Отрасль Не имеет значения. Налоги Не имеет значения. Вид учета Бухгалтерский учет. Доступ к файлу Бесплатно free. Код открыт Не указано. Новости Публикации Вебинары Видео Вакансии Заказы на работу. В статье описана структура и взаимосвязь процедур и фунций расчетных документов и общего модуля "ПроведениеРасчетов" конфигурации ЗУП8. Статья расчитана для ознакомления начинающими программистами и внедренцами ЗУП. Также будет полезна тем, кто переходит с ЗиК Фитнес - бесплатное приложение для тренажерного зала или тренировок дома на мобильной платформе 1С. Мобильное приложение sList бесплатное - самый удобный список покупок с голосовым вводом и обменом фото. Перевод длинных текстов в конфигурации 1С: Часто встречающиеся ошибки 1С и общие способы их решения. ERP Управление предприятием 2. Схема отражения переработки Давальческого сырья в УТ Клавиатурные тренажеры - в помощь программисту 1С. Зачем ещё нужны "горячие" клавиши в 1С? Функциональные обязанности программиста 1С. Принципы внедрения и сопровождения учета на базе 1С. Базовые версии 1С Предприятия 8 - доступно и всерьез. Создание внешних компонент 1С для начинающих. Как быстро сохранить огромный отчет для обработки в EXCEL. Три видео урока по пользованию 1С: Дата Дата Дата Рейтинг Древо Сохранить. А откуда текст, если не секрет? Алексей Константинов alexk-is Тексты модулей в публикации можно раскрасить получше. Сергей Sergant 19 Слишком сложно для начинающего программиста. А по кадровой подсистеме нет подобного? Sasha Erem erem Писал для самого сложного Подсистема кадровая не освещалась подобным образом? С ЗУП только начал знакомиться. И не понимаю, почему при расчете больничного, например не перерассчитываются вытесняемые больничным записи, например оклад, если он уже ранее был рассчитан? То есть не понятно, как на практике в организациях обходят эту проблему? А автору спасибо за отличный материал! Сергун, всё имнно так, как ты и написал - начисление зарплаты делается в последнюю очередь, после всех док-ов типа отпуска или б. Vlad Dyukov vl88 Владимир Клименко KliMich Для начального изучения - однозначно плюс. Vol It volit Благодарю автора очень помогла статья, все четко и без воды. Ирина Киселева irishka77 Наталья Карагулова nataliaK Давно искала информацию по добавлению нового вида расчета. Очень интересная и нужная статья. Александр Перевислый sashapere А можете немного рассказать про универсальные способы расчета, как их использовать. Иван Китаев Zord Татьяна Медведева medv Внедрение зарплаты занимаюсь более 10 лет. Часто приходят новые сотрудники, которым приходится пытаться на пальцах обяснить сложные расчеты. Теперь есть куда отправить, если нет времени: Артем Боровлев borrman Александр Гневышев agnev 64 Прекрасная статья, огромное спасибо! И нашел вовремя - как раз готовлюсь к специалисту. Сэкономил себе кучу времени на начальное изучение "внутренностей", ведь ранее с конфой работать не приходилось. Рустам Borometr 36 Действительно одна из сложных конфигураций, с доработкой бухгалтерии и других конфигураций особых проблем не возникало, а здесь для меня вообще пока ничего непонятно. Бухгалтера просят сделать так, чтобы вычет НДФЛ делался только на доходы определенных видов начислений, а не на все, полазил в конфигураторе по модулям, голова заболела, пошел спать. Сергей Лесовой Synoecium Отличная статья, все разложено по полочкам и даже объяснено почему реализовано именно так. Phoenix F Lordemar 5 Кое-что для себя подчерпнул. Сергей Огнарев ogoneksergei 3 Все доступно и понятно. Сергей Маслов LexSeIch Попалась бы она год назад, как раз, при изучении программирования на курсах Спасибо автору, полезная статья! Аня Босая Leanna Сергей Che Коцюра CheBurator В подавляющем количестве случаев хотелки бухов по ЗП идут вразрез с положениями законодательных актов. Максим Кузнецов Makushimo Побольше бы таких статей Однозначно полезная статья. Алексей Роза DoctorRoza Надо взять её на вооружение! Очень не плохо, познавательно, по отдельным моментам заполняются пробелы. Артем Артеменко dock 24 Хорошая статья, ждем продолжения: На дворе уже 3. Svetlana Gapon Елена Пименова Bukaska Как раз стоит задача быстро въехать в типовые расчетные механизмы. Павел Антонов Seregio22 Как включить это флаг, если на форме ни флага, ни кнопки таковой нет.. Например, Начисление отпуска сотруднику, рассчитать НДФЛ. В коде написано четко: А ниже в процедуре куча кода для комментариев расчета. Введите ваш пароль Забыли свой пароль? Код подтверждения из письма: Введите код подтверждения из письма. Оставьте заявку и в течение 24 часов с Вами свяжется менеджер и вышлет подбор обработок или программных продуктов 1С по вашим требованиям. Отраслевые решения Бухгалтерия Производство Услуги и сервис Торговля Прочее Отчеты Анализ учета Бухгалтерские Налоговые Специальные Статистические Управленческие Финансовые Разное Обработки Закрытие периода Менеджеры внешних отчетов 53 Обработка документов Обработка справочников Рабочее место Свертка базы Универсальные обработки Ценообразование, прайсы Управление Бизнес-процессы Интеграция 43 Личная эффективность 17 Пользователю системы Практика учета Теория учета Техническое задание 44 Управление проектом Обмен Email рассылки SMS рассылки 96 Загрузка и выгрузка в Excel Интеграция с WEB Обмен с другими системами Обмен с интернет-банком Обмен через DBF Обмен через XML Перенос данных из 1C8 в 1C8 Перенос данных из 1С7. Администрирование Архивирование backup Журнал регистрации Защита, права, пароли Оптимизация БД HighLoad Поиск данных Распределенная БД УРИБ, УРБД Сервисные утилиты Системное Стартеры 1С 75 Статистика базы данных Тестирование и исправление Чистка базы Программирование Инструментарий Внешние компоненты Защита и шифрование 68 Мобильные приложения Ошибки в отраслевых решениях 28 Практика программирования Работа с интерфейсом Сертификация Теория программирования Универсальные функции Печать Классификаторы 55 Пакетная печать Печатные формы документов Регламентированная отчетность Справки Статистики 80 Универсальные печатные формы Ценники Оборудование POS терминал 36 Весы 56 ККМ Ридер магнитных карт 11 Сканер штрих-кода Телефония, SIP 41 Терминал сбора данных 86 Фискальный регистратор 82 Сообщество Архив Игры Инфостарт Люди 22 О жизни Поздравления Sasha Erem erem Рейтинг:


https://gist.github.com/1ff2f4485761a2c463452b58d55218d3
https://gist.github.com/65452495ba2af9a77780e00e4d6886b4
https://gist.github.com/3871506ecf72cd116ac914ea173bd432
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment