Ликвидация бизнеса. Приказы. Оборудование для бизнеса. Бухгалтерия и кадры
Поиск по сайту

1с пересчет итогов регистров накопления. Рассчитываем сумму в строке

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

Для этого нужно открыть карточку номенклатуры через «Главное меню»- «Справочники Номенклатура» (два раза щелкнуть по ней мышью или нажать кнопку «Изменить»). При этом откроется карточка номенклатуры:

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

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

Например, базовая единица измерения установлена «штука», так же имеется еще две единицы измерения «упаковка» и «коробка». Для коробки установлен коэффициент пересчета равный 1000 - это значит, что 1 коробка содержит 1000 штук. А для упаковки коэффициент пересчета равен 100, т.е. одна упаковка содержит 100 штук. В этом случае программа 1С УПП способна свободно пересчитывать не только упаковки и коробки в штуки, но и упаковки в коробки, для этого она посчитает отношение 1000/100 и получит правильный ответ, что в одной коробке содержится 10 упаковок.

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

Например, для Бумага Ballet в качестве базовой единицы удобно выбрать штуки. Изменить базовую единицу измерения возможно в карточке номенклатуры:

После того как Вы убедитесь в правильности указанной в номенклатуре базовой единицы измерения, необходимо перейти на закладку «Единицы измерения» (она может быть видна не полностью). На закладке «Единицы измерения» расположен список единиц измерения для данной номенклатуры.

Для того чтобы добавить новую единицу измерения, необходимо воспользоваться кнопкой «Добавить». При этом появится диалог редактирования единиц измерения. В этом диалоге необходимо выбрать единицу измерения по классификатору. В открывшемся классификаторе выбрать ту единицу измерения, которую необходимо добавить. После выбора поля «По классификатору» и «Наименование» заполнятся:


Т.к. в этом примере базовая единица измерения установлена «Штуки», и добавляемая единица измерения тоже «Штуки», то коэффициент пересчета из «Штуки» в «Штуки» будет равен одному. Поэтому в поле «Содержит (шт)» необходимо установить единицу.

После того, как установлена единица измерения по классификатору и установлен коэффициент пересчета, новую единицу измерения необходимо сохранить, нажав на кнопку «ОК». В списке появится новая единица измерения:


Жирным шрифтом выделена единица хранения остатков (в данной единице будет возможно сформировать управленческие отчеты, например, «Товары на складах»).

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


Для примера указан коэффициент пересчета, равный 100.

После окончания изменения единиц измерения карточку номенклатуры необходимо закрыть, нажав кнопку «ОК».

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


Если установлена единица измерения «упак», то коэффициент принимает значение, равное 100. При смене единицы измерения с упаковки на штуки коэффициент в документе сменит свое значение на 1:


При проведении документа учитываемое количество будет пересчитываться из указанных единиц измерения в единицы хранения остатков. Указать требуемые единицы измерения в отчете «Товары на складах» можно, перейдя по кнопке «Настройки» в показатели отчета.


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

Тут самое главное понять что запись с нулевым количеством в итоге, совершенно не означает что эта запись не нужна.

При проектировании реляционных СУБД считается (считалось) что операции CRUD (Create, Read, Update, Delete) по затратам ресурсов распределяются следующим образом

1. Легкие: Read, Update
2. Средние: Create
3. Тяжелая: Delete

И исходя из логики поведения объекта Регистр, который меняется часто; и из-за больших затрат на удаление записей, существует позиция что:

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

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

И вот тут я могу сказать что разработчики платформы слегка "недочлись" (от слова "недочет") - дело в том что согласно вышеописанному архитектурному решению явно становится понятно, что:

Удалять записи с нулевым итогом нужно по тем ключам (комплектам измерений), по которым длительное время не было операций UPDATE. А этого функционала в платформе нет - есть только глобальный пересчет. В крупных конторах это решается SQL Job"ом выполняющем примерно следующую работу:

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

обычно данный Job запускается раз в 10 секунд, выбирается TOP 1 чтобы уменьшить время блокировки на затратную операцию удаления. Естественно в такие базы уже встроены и планы обслуживания по пересчету статистики и перестроению дефрагментированных индексов. В случаях когда таких "ненужных" записей очень много - то обычно уменьшают период запуска Job, либо отказываются от Регистра Итогов - потому что если у вас много ключей уходит в "ноль" и больше не используется, скорее всего у вас по данным ключам 2 операции движения "пришел" и "ушел" - зачем хранить такую информацию в регистре итогов совершенно не ясно.

Ну и про статистику тут тоже все изъезжено - масcовые операции CREATE И DELETE, а также UPDATE ключевого столбца ведут к нарушению дерева поиска по индексу (диапазона распределений ключа по страницам данных) - ну то есть в поисковом диапазоне 1..10 вполне себе может оказаться ключ со значением 23 - так SQL было удобней, потому страница данных была рядом со страницей ключа 7, а ключ 6 заместо которого встал ключ 23 окажется в диапазоне 100..134 - что тоже было удобней исходя из страниц данных. Пример на пальцах - но думаю суть отражает.

Вообще про статистику в момент массовых операций удобно понять следующее: когда вы делается массовую вставку данных SQL пытается вам помочь и оперирует близостью страниц данных для оптимизации вставки и совершенно забывает про оптимизацию операций чтения, где параметром является статистика (диапазоны поиска ключа в таблице - распределение ключа), поэтому чтобы после массовых вставок операции чтения были тоже быстрыми - необходимо восстановить работоспособность инструмента оптимизации чтения выполнив UPDATE STATS.

Да и еще забыл сказать - массовое удаление ведет к массовому возникновению фантомных записей: запись числится удаленной но место занимает - такая ситуация ведет к снижению производительности операций выборок типа SCAN (просмотр).

Vatkir; asylum90; Ганс; Anikrion; Albert_2008; Niberu; ser6702; MarchTomCat; olezhe; user598655_ilia-bers; klaus38; LordKim; lmnlmn; spenser123; Monte Carlo; acanta; zaharknyaz; Aggressorak; vesd; Ilya$n; Waanneek; SkyJack; letarch; aegoncharov; user777757; [email protected]; mytg; Gang031; ice-net; Goga1979; ChessCat; RegrZ; 1cprogr_nsk; Irwin; Paradise.87; KAV2; корум; Roman100; for_questions; ragimi; EugeneMIPT; kai nk; kitaevay; crosby; Noxie41; Alex_grem; nixel; new_user; tdml; NeviD; RimidalV; reboot; denis_aka_wolf; Flashill; marchenko.y; freya-khv; asg.aleks; denis13; adm134; TIS_08; mtv:); soulsteps; shalimski; Anesk; pisarevEV; Silenser; kwazi; engineer74; vadimlp77; Артано; dgolovanov; pchela751; aexeel; artbear; jif; Dmitryiv; Rego1337h; slavap; WizaXxX; IvanBoychuk123; fishca; Evil Beaver; Dach; RodinMax; sanches; mdmdvd; zakakvo; Krio2; jacksonp; adeich; afedor; MaximStav; DoctorRoza; Serg0FFan; sanfoto; kinazarov; Bukaska; theshadowco; oitnur; JesteR; detec; audion; laeg; morok1983; krv2k; Di-dog; sparklemal; awa; KAPACEB.AA; Chif13; sa1m0nn; CratosX; AllexSoft; galich; vlad.frost; igordynets; tormozit; vasiliy_b; vladir; meuses; Poopkeen; Andreynikus; Prad2002; dicwork; JohnyDeath; An-Aleksey; It-developer; rgrisha; Bronislav; 7o2uYXg; HolodZar; адуырщдв; AzagTot; Рамзес; DenisCh; PONOM; rеd80; w-divin; metmetmet; CheBurator; PressaLod; Diversus; sevushka; Aleksey.Bochkov; yuraos;

Параметры:

<Значение>

Форматируемое значение.

<ФорматнаяСтрока>

Форматная строка представляет собой строковое значение, включающее параметры форматирования.

Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного.

Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.

Каждый параметр задается именем параметра, символом "=" и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.

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

Имена и значения параметров форматной строки:

  • Л - имя языка, страны, для которых будет выполняться стандартное форматирование.
  • ЧЦ - общее число отображаемых десятичных разрядов целой и дробной частей. Исходное число округляется при этом в соответствии с правилами округления. Если указан этот параметр, то для отображения дробной части числа обязательно указание параметра ЧДЦ, иначе дробная часть отображаться не будет.
  • ЧДЦ - число десятичных разрядов в дробной части. Исходное число округляется при этом в соответствии с правилами округления.
  • ЧС - сдвиг разрядов: положительный - деление, отрицательный - умножение. Другими словами, это означает, что исходное число будет умножено или поделено на 10*С, где С - значение параметра по модулю.
  • ЧРД - символ-разделитель целой и дробной части.
  • ЧРГ - символ-разделитель групп целой части числа. Если в качестве разделителя использовать пустую строку, то в этом случае разделителем будет символ неразрывного пробела.
  • ЧН - строка, представляющая нулевое значение числа. Если не задано, то представление в виде пустой строки. Если задано "ЧН=", то в виде "0". Не используется для числовых полей ввода.
  • ЧВН - нужно ли выводить лидирующие нули. Значение данного параметра не задается, собственно наличие параметра определяет вывод лидирующих нулей.
  • ЧГ - порядок группировки разрядов числа. В качестве значения указываются числа, через запятую, обозначающие количество группируемых разрядов справа налево. Имеют смысл только два первых числа. Первое из них указывает первичную группировку, то есть ту, которая будет использована для наименее значимых разрядов целой части числа. Если второе число не указано, то будут сгруппированы только наименее значимые разряды. Если в качестве второго числа задан 0, то для всех разрядов целой части числа будет применено значение указанное для первичной группировки. Если в качестве второго числа используется значение, отличное от 0, то это значение будет использовано для группировки всех разрядов, кроме уже сгруппированных наименее значимых.
  • ЧО - представление отрицательных чисел.
    • 0 (0) - строка вида "(1,1)";
    • 1 (1) - строка вида "-1,1";
    • 2 (2) - строка вида "- 1,1";
    • 3 (3) - строка вида "1,1-";
    • 4 (4) - строка вида "1,1 -".
  • ДФ - формат даты.
    • д - день месяца (цифрами) без лидирующего нуля;
    • дд - день месяца (цифрами) с лидирующим нулем;
    • ддд - краткое название дня недели;
    • дддд- полное название дня недели;
    • М - номер месяца (цифрами) без лидирующего нуля;
    • ММ - номер месяца (цифрами) с лидирующим нулем;
    • МММ - краткое название месяца;
    • ММММ - полное название месяца;
    • к - номер квартала в году;
    • г - номер года без века и лидирующего нуля;
    • гг - номер года без века с лидирующим нулем;
    • гггг - номер года с веком;
    • ч - час в 12 часовом варианте без лидирующих нулей;
    • чч - час в 12 часовом варианте с лидирующим нулем;
    • Ч - час в 24 часовом варианте без лидирующих нулей;
    • ЧЧ (HH) - час в 24 часовом варианте с лидирующим нулем;
    • м - минута без лидирующего нуля;
    • мм - минута с лидирующим нулем;
    • с - секунда без лидирующего нуля;
    • сс - секунда с лидирующим нулем;
    • вв - отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).
  • ДЛФ - локальный формат даты. Указывается вариант отображения частей даты.
    • Д - дата (цифрами);
    • ДД - длинная дата (месяц прописью);
    • В - полное время, дата может объединяться со временем;
    • ДВ - дата время.
  • ДП - строка, представляющая пустую дату (например, Формат("00010101000000" ,"ДП=""пустая дата""") вернет строку "пустая дата").
  • БЛ - строка, представляющая логическое значение Ложь .
  • БИ - строка, представляющая логическое значение Истина .

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

Начисление страховых взносов в 1С: Бухгалтерия

Перед тем, как выполнять операции по начислению взносов в программе 1С: Бухгалтерия необходимо осуществить настройку их учета и расчета. Для этого следует войти в меню «Зарплата и кадры», где нужно выбрать пункт «Настройки зарплаты».

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

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

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

Есть еще одна настройка, которую следует сделать для правильного отражения в системе бухгалтерского учета страховых взносов. В форме «Настройки зарплаты» нужно выбрать пункт «Статьи затрат по страховым взносам». Именно правильная настройка данного пункта позволяет отражать все обязательные взносы с заработной платы работников в системе бухгалтерского учета.

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

Начисление страховых взносов в программе 1С: Бухгалтерия осуществляется одновременно при расчете и начислении зарплаты. Всю процедуру начисления страховых взносов можно увидеть, зайдя в документ «начисление зарплаты» и перейдя на вкладку «Взносы». Величину взносов можно откорректировать вручную.

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

  • 69.01 – на сумму, причитающуюся уплате в фонд социального страхования;
  • 69.03.1 – на сумму, подлежащую уплате в федеральный фонд обязательного медицинского страхования;
  • 69.11 – ну сумму, начисленную в фонд обязательного социального страхования;
  • 69.02.7 – на сумму, начисленную на обязательное пенсионное страхование.

Перерасчет страховых взносов

Замечание 1

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

Найти этот документ можно в разделе «Зарплата и кадры».

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

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

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


В общем случае, записи таблицы перерасчетов содержат поля:
  • объект перерасчета (документ-регистратор, данные которого нужно пересчитать)
  • вид расчета - ссылка на вид расчета из Плана видов расчетов, определенного для данного регистра расчета

Записи можно хранить и более детально, в разрезе одного или нескольких измерений данного регистра расчетов. Например, перепроводился задним числом регистратор начисления заработной платы по всему отделу; при этом изменения были только по сотруднику Иванову. Добавление в Перерасчет измерения Сотрудник позволит это отследить. При этом, измерение Перерасчета нужно связать с измерением регистра расчета:

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

Вопрос 14.41 экзамена 1С:Профессионал по платформе. Данные о перерасчетах...

  1. не являются записями регистра расчета
  2. являются записями регистра расчета
  3. являются записями регистра перерасчета
  4. являются записями таблицы фактического периода действия

Правильный ответ первый, они вообще хранятся в отдельных таблицах.

Вопрос 14.42 экзамена 1С:Профессионал по платформе. В окне свойств измерений "Перерасчета" на закладке "Связь" в свойстве "Измерение регистра" указывается...

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

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

Вопрос 14.43 экзамена 1С:Профессионал по платформе. Таблица "Перерасчета" заполняется строками, каждая из которых представляет собой...

  1. набор сведений о виде расчета и документе-регистраторе записи регистра расчета, которую нужно пересчитать. Также в таблице будут присутствовать измерения перерасчета
  2. набор сведений о виде расчета и документе-регистраторе записи регистра расчета, которую нужно пересчитать
  3. набор сведений о виде расчета, номере строки документа-регистратора и самом регистраторе записи регистра расчета, которую нужно пересчитать. Также в таблице будут присутствовать измерения перерасчета
  4. нет правильных ответов

Первый ответ верен, разбор выше.

Вопрос 14.45 экзамена 1С:Профессионал по платформе. Выберите правильный ответ:

  1. В процессе работы с перерасчетами разработчик может "не обращать внимания" на сведения, которые предоставляет система в таблице перерасчета, то есть отказаться от пересмотра результатов расчета
  2. Принцип работы перерасчетов в системе "1С:Предприятие 8" является "уведомительным"
  3. Разработчик конфигурации не может управлять процессом перерасчета записей регистра расчетов, система все делает автоматически
  4. Верно 1 и 2 утверждение

Правильный ответ четвертый - перерасчет лишь отслеживает потенциальную необходимость изменения зависимых данных.

Вопрос 14.46 экзамена 1С:Профессионал по платформе. Для одного регистра расчета...

  1. может поддерживаться только один перерасчет
  2. могут поддерживаться только три перерасчета разной структуры
  3. поддерживается любое количество перерасчетов разной структуры

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

Вопрос 14.57 экзамена 1С:Профессионал по платформе. Периодичность ведения расчетов – месяц. В регистре расчета сделаны соответствующие настройки. Для вида расчета Оклад в качестве вытесняющего указан вид расчета Командировка. 01.03.14 в информационную базу была введена информация по окладу, однако расчет произведен не был. 20.03.14 в информационную базу была введена и рассчитана командировка. 30.03.14 был запущен расчет по окладу. Будут ли при расчете оклада учтены данные о командировке? Надо ли делать перерасчет командировки?

  1. Учтены будут, но командировку придется пересчитать
  2. Учтены будут, перерасчет командировки не требуется
  3. Учтены не будут. Надо отменить расчет командировки и заново рассчитать оба вида расчета
  4. Учтены не будут. Чтобы правильно произвести расчет, оклад и командировка должны находиться в одном документе

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