Счетоводна информация. Счетоводна информация Контрол на отрицателни салда в 1s 8.3

  • 05.02.2024

В моите видео уроци често говоря за факта, че базата данни 1C трябва да бъде подготвена за приключване и отчитане на периоди. И една от важните точки на такава подготовка е контролът на отрицателните баланси на стоки, материали и готови продукти. Какви отчети трябва да използвате, за да проверите състоянието на сметките за инвентар в 1C: Счетоводство? Нека разгледаме някои от тях.

1. Отчет „Баланс по сметката“

Много счетоводители са свикнали да работят със счетоводни баланси. Този отчет наистина може да се използва за контролиране на балансите на инвентара, просто трябва да се уверите, че настройките са зададени за показване на количествени показатели.
Щракнете върху бутона „Показване на настройките“ и отидете на раздела „Индикатори“.

След това внимателно преглеждаме доклада и анализираме откритите грешки

Балансът е удобен, защото ви позволява да оцените не само наличието на отрицателни количествени салда, но и да откриете други проблемни ситуации:
- количествено салдо на стоково-материалните запаси без сума;
- общ баланс без количество;
- отрицателно салдо.
Въпреки това, ако в счетоводството са включени голям брой артикули, тогава такава проверка може да бъде доста трудоемка. Освен това SALT ще трябва да се генерира отделно за всяка счетоводна сметка (10, 41, 43), което също донякъде усложнява работния процес.

2. Справка "Контрол на отрицателни салда"

Конфигурацията 1C: Enterprise Accounting 8 издание 3.0 предоставя отчет, който е идеален за наблюдение на отрицателни количествени салда на инвентарни позиции. Справката се намира в раздела “Склад”.

Посочваме периода, организацията и генерираме отчет.

Отчетът включва само артикулите, за които е открито отрицателно количествено салдо. Голямото предимство е, че се анализират данните за всички инвентарни сметки. Според мен е по-удобно да се работи с отчета, отколкото с OSV.
Но има и минус - отчетът ви позволява да наблюдавате само отрицателни количествени баланси, оставяйки зад кулисите други проблеми, които SALT ви позволява да откриете.

3. Доклад „Анализ на subconto“

Неведнъж съм говорил за този доклад. Subconto анализът е един от любимите ми отчети, който ви позволява не само да откривате грешки, но и в много ситуации да разбирате причините за тях.
Отидете в раздела „Отчети“ - „Анализ на подконто“.

Изберете подконто „Номенклатура“ и проверете дали показването на количествени показатели е разрешено в настройките на отчета.

Subconto анализът е добър, защото ви позволява да получите информация за движението на инвентарните позиции във всички счетоводни сметки. Например за проследяване на ситуации, при които даден продукт е пристигнал в една счетоводна сметка, но е продаден от друга.

При голям брой елементи обаче може да е трудно да се анализират данните.
Говорих повече за работата с този отчет във видео урока Как да работя с отчета „Анализ на подконто“ в 1C - ВИДЕО.
Така всеки от прегледаните доклади има своите плюсове и минуси. В моята работа бих препоръчал да ги комбинирам:
- намиране на груби грешки с помощта на отчета „Контрол на отрицателни баланси“;
- след това прегледайте SALT за всички инвентарни сметки;
- за да идентифицирате причините за неправилен баланс, използвайте отчета „Subconto Analysis“.
Също така обсъдих интересни примери, свързани с намирането и коригирането на грешки при отчитане на стоково-материалните запаси в два полезни видеоклипа:

Всяка организация трябва да следи запасите. И често възниква ситуация, когато продуктът действително е наличен, но не е в програмата. И тогава счетоводителят е принуден да вземе решение:

  • позволи да бъде продаден;
  • отложи, докато стане ясно защо се е стигнало до тази ситуация.

Решението, като правило, се взема въз основа на политиката, която се следва в организацията по отношение на счетоводното отчитане на балансите. Понякога можете да оставите продукта настрана и да кажете на купувача, че не е възможно да го продадете сега. Понякога това е невъзможно да се направи. Например, когато купувачът види този продукт или вече го държи в ръцете си.

Можете, разбира се, просто да генерирате документ за продажба и да не публикувате документа, но не всички организации позволяват това. Следователно в програмата 1C 8.3 (както в 8.2) е възможно да деактивирате контрола на отрицателните салда.

Ако контролът на баланса е активиран, тогава при продажба на артикул, който не е на склад (или в необходимата сметка), програмата ще издаде следното предупреждение:

Колона „Количество” в ред 1 на списък „Продукти” е попълнена неправилно.
Посоченото количество надвишава баланса. Остават: 18; Липсващи: 111 093

Вземете безплатно 267 видео урока за 1C:

Деактивиране на контрола на отрицателните салда в 1C 8.3

За да деактивирате или активирате контрола на баланса в 1C, трябва да отидете в менюто „Основно“, след което в секцията „Настройки“ изберете „ “.

В някои версии на 1C Accounting тези настройки се намират в менюто „Администриране - Настройки за публикуване на документи“.

В „Счетоводни параметри“ трябва да отидете в раздела 1C „Запаси“ и да поставите отметка в квадратчето „Разрешаване на отписване на материални запаси, ако няма салда според счетоводните данни“:

След това всичко, което трябва да направите, е да щракнете върху бутона „Запазване и затваряне“. Сега при отписване салдата няма да се контролират.

Но такъв метод неизбежно ще доведе до появата на отрицателни салда в склада (което означава, в програмата). Нека да видим как да се справим с това.

Справка „Контрол на отрицателни салда“

В най-простия случай просто трябва да изберете период и да щракнете върху бутона „Генериране“. И точно тук ме очакваше първата изненада.

Специално симулирах в тестовата програма ситуация, при която продадох повече стоки, отколкото имам на склад. Освен това той направи тази продажба през 2013 г. Логично, все още имам същия продукт на червено сега, през 2016 г. Затова дори не докоснах периода, но веднага щракнах върху „Генериране“. При мен не се получи. Оказва се, че справката може да показва информация за отрицателни салда само за избрания период.

Контролът върху складовите наличности е задължителна счетоводна процедура във всяко предприятие, работещо със стоки. Често може да срещнете ситуация, в която няма продукт в програмата, но всъщност е в склада. В такава ситуация има два варианта:

  • Изпратете го за продажба;
  • Оставете го в склада до изясняване на обстоятелствата около тази ситуация.

Изборът зависи от няколко фактора, като например организационни политики или конкретна ситуация. Ако продуктът е на тезгяха и купувачът се интересува от него (държи го в ръцете си), не е препоръчително да отказвате продажбата.

Някои предприятия практикуват генериране на документ за продажба, без да го публикуват, но не всички използват тази практика. В случай на такива ситуации програмата 1C в най-новите си версии предлага възможност за деактивиране на контрола на отрицателните салда.

Когато контролът е активиран, продажбата на стоки, които не са на склад според програмата, ще даде предупреждение на потребителя: „Колоната „Количество” в ред 1 на списък „Продукти” е попълнена неправилно. „Посоченото количество надвишава баланса. Остават: 18. Липсват 111.093.“

Деактивиране на контрола на отрицателните салда в 1C

Операцията за включване / изключване на контрола на балансите в 1C се извършва чрез менюто „Основни“ - „Настройки“ - „Счетоводни параметри“ - „Запаси“. Тук трябва да поставите отметка в квадратчето „Разрешаване на отписване на инвентар, ако няма инвентар според счетоводните данни“.

След това действието се потвърждава с бутона „Запиши и затвори“. От своя страна такива действия гарантирано ще станат основа за формиране на отрицателни салда в счетоводството. Те ще трябва да бъдат елиминирани.

Справка „Контрол на отрицателни салда“

Тази справка се генерира през меню “Склад” - “Отчети”, където се представя документът. От потребителя се изисква да определи интервала на заявката и да кликне върху бутона „Генериране“. Липсата на определен период няма да ви позволи да показвате отрицателни салда, което е функция на системата, която изисква задължително попълване на колона „Период“.

Готовият отчет има следния вид.

За самия отчет е наличен стандартен набор от филтри, включително групиране, сортиране и други трансформации на данни в съответствие с потребителските заявки и нужди. С помощта на бутона „Показване на настройките“ можете ръчно да включите допълнителни редове в отчета.

В търговските или производствените предприятия отрицателните салда „изскачат“ в счетоводната система. Те отразяват прекомерно отписаните стоки/материали.

Какви са причините за възникването им?

Няма пристигане

Често най-честата причина може да бъде липсата на получаване на стоки или въвеждане на първоначални салда. Например, закупили сте продукт, но все още не сте успели да го регистрирате в системата, но те вече са успели да го продадат. Това, което се случва, е, че стоките са регистрирани, след това са преместени в магазина и са продадени, но някой е анулирал документа за получаване.

В тази ситуация правилният курс на действие би бил да се провери наличието на документа за получаване в базата данни. Ако е там и не е публикувано, проверете попълването и го публикувайте. Ако документът за получаване изобщо не е в базата данни, трябва да го въведете със задна дата. Необходимо е да се разбере, че добавянето на документи със задна дата в затворен данъчен период може да доведе до промени в данъчните суми, по-специално ДДС.

Прекласифициране

Друга често срещана причина за явлението, което разглеждаме, е неправилно класифициране или излишък на един вид продукт (материал) и същевременно недостиг на друг. Например, в програмата само черен портфейл в размер на 10 броя е маркиран в наличност, но в магазин продавачът продава червен портфейл и регистрира продажбата му в базата данни в размер на 5 броя. В резултат на това балансът на черните портфейли в базата данни не намалява, но нашият баланс се появява в червени портфейли.

В този случай корекцията на салда се решава по следния начин: записва се регистрация на един продукт и отписване на друг. За целта се създава документ „Осчетоводяване на стоки“ и в него се записват 5 позиции с главни букви. червени портфейли. След това се създава документ „Отписване на стоки“ и в него се отписват 5 позиции. черни портфейли.

Когато в 1C: Счетоводство 3.0 има отрицателно салдо за продукт (материали), тогава при осчетоводяване на документа „Продажби на стоки“ се показва информационно съобщение, че не е възможно да се осчетоводи този документ, тъй като броят на единиците показана в табличната част на документа надхвърля салдото.

Фиг. 1 Съобщение в документа при липса на наличност в склада

Предупредителни сигнали в баланса - отрицателните салда са маркирани в червено!



Фиг.2 Проследяване чрез OSV

Как да активирате или деактивирате контрола на отрицателните салда в 1C BP 3.0

Можете да настроите контрол в секцията „Администриране“, след което щракнете върху връзката „Публикуване на документи“.



Фиг.3 Настройка

За да деактивирате контрола, трябва да активирате флага на параметъра „Разрешаване на отписване на инвентара, ако няма салда според счетоводните данни“.



Фиг. 4 Разрешение за отписване на единици с отрицателни показатели за баланс

Случва се, за да продадете спешно продукт, който също трябва спешно да бъде изпратен, трябва временно да деактивирате контрола. Документът „Имплементации“ се публикува в системата и след това контролът се включва отново. След това не забравяйте да анализирате балансите, за да коригирате счетоводната грешка, която е причинила отрицателния продукт.

За да контролирате салда по склад, трябва да настроите анализи за тях в „Настройки на счетоводството“ през „Администриране“.



Фиг.5 Параметри

Кликнете върху „Настройване на сметкоплан“.



Фиг.6 Параметър за настройка

Кликнете върху „По позиции, партиди и складове (по количество и сума)“.



Фиг.7 Параметри за отчитане на запасите

Когато инсталираме аналитика, като щракнете върху „По складове (места за съхранение)“, избираме как да поддържаме записи.



Фиг.8 Активиране на складови анализи

Ако е избрана настройката „по количество и сума“, съответно счетоводството ще бъде в количествено и общо отчитане за складове поотделно, а ако „по количество“, тогава само количествено в контекста на всеки склад, а сумите за отписване са определя се като цената на материалните запаси се раздели на цялото количество във всички складове.

Контролни доклади

Отчетът „Контрол на отрицателни салда“ се използва за анализ на открити отрицателни салда на стоки на организации. Можете да го отворите през “Склад - Контрол на отрицателни салда”.



Фиг. 9 Справки за контрол на салда



Фиг.10 Формуляр за контролен отчет

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



Фиг.11 Настройки на контролния отчет

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



Фиг. 12 Селекции в контролния отчет



Фиг. 13 Генериране на контролен отчет

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

Тази статия е предназначена за внедрители на 1C - и особено за тези, които се подготвят за сертифициране 1C: специалист по платформа.

Днес ще погледнем 2 метода за контрол на салда - не само салда в склада, но и например взаимни разчети („Какво е текущото задължение на клиента и възможно ли е да му изпратим стоки?“)

И двата метода се използват в стандартни конфигурации и в задачи за сертифициране. И тъй като те са две - трябва ясно да разберете кога е приложима „новата“ техника и кога само „старата“..

Това са основни знания за програмистите на 1C; препоръчваме да не оставяте пропуски в такива области. Трябва да ви отведе да учите 15 минути :)

Формулиране на проблема

Да вземем проста конфигурация с документите „Получаване на стоки“ и „Продажби на стоки“:

За отчитане на салда се използва регистърът за натрупване „Свободни салда“:

При осчетоводяване на документа „Получаване на стоки“ се извършват следните движения:

ProcessingProcedure(неуспех, режим)


За всеки TechStringПродукти от продуктов цикъл
Движение = Movements.FreeRemains.Add();
Movement.MovementType = AccumulationMovementType.Incoming;
Movement.Period = Дата;
Movement.Nomenclature = TechStringProducts.Nomenclature;
Movement.Quantity = TechStringProducts.Quantity;
EndCycle;

Край на процедурата

Обработката на осчетоводяване на документа „Получаване на стоки“ е извършена с помощта на дизайнера на движение и не представлява интерес, тъй като когато пристигне в склада, не е необходим контрол на салдата.

Понякога се прилага и балансов контрол за документа „Получаване на стоки“ - така че когато документът бъде анулиран или повторно осчетоводен, не се образува отрицателно салдо.

Например 10 нови телевизора LG пристигнаха в склада, 6 от тях бяха продадени. Ако документът за получаване съдържа 10 бр. фиксирайте с 5 бр. – формира се отрицателно салдо „минус 1 бр.

В стандартния UT 11 такъв контрол е активиран с помощта на функционалната опция „Контролирайте стоките на организациите при анулиране на разписки“.

При осчетоводяване на документа „Продажби на стоки“ необходимо е да се организира контрол на остатъците. Ако не е останал достатъчно продукт, документът не се осчетоводява и се издава диагностично съобщение. Това е проблемът, който се решава.

Умишлено работим върху прост проблем, при който разходите за отписване не се изчисляват. Това ще ни позволи да се съсредоточим конкретно върху нюансите на контрола на остатъчните вещества.

Забележка– представените по-долу алгоритми са предназначени за обучение и трябва да бъдат възможно най-ясни.
Те могат да бъдат оптимизирани, но тогава „коефициентът на разбиране“ ще бъде по-нисък, така че не се спираме на това в тази статия.

Естествено, можете да ги оптимизирате сами или да вземете нашия курс за ускоряване и оптимизация на 1C :)

Както вече разбрахте, решаването на проблема може да стане по два начина. Нека започнем с техника, която се използва от дните на 1C:Enterprise 8.0.

Стар метод за контрол на остатъците

Принципът на старата техника за контрол на остатъците е следният: Проверяваме дали има останали стоки в необходимото количество. Ако има, отписваме, ако няма, съобщаваме за грешка..

Алгоритъмът в стария метод се състои от няколко блока:

  1. Заявката извлича продуктови баланси и данни за документи
  2. Цикълът следи за достатъчността на стоките
  3. Ако няма достатъчно стоки, документът не се осчетоводява
  4. При наличие на достатъчно стоки се извършват разходни движения

Ето как изглежда програмният код:

// 1. Изчистване на стари регистърни движения
Movements.FreeRemainders.Write = True;
Движения.Запис();

// 2. Получаване на данни за документи и регистрационни салда по заявка
Заявка = Нова заявка;
Заявка.Текст =
"ИЗБИРАМ

|продукти PLACE
| ОТ
|КЪДЕ
| Продукти.Връзка = &Връзка
|ГРУПИРАНЕ ПО
| Продукти. Номенклатура
|ИНДЕКС ПО
| Номенклатура
|;

|ИЗБЕРЕТЕ
,
| REPRESENTATIONLINK(Продукти.Номенклатура) AS NomenclatureRepresentation,
| Продукти. Количество като количество,
| ISNULL(Остатъчно.Остатъчно число, 0) КАТО остатък
| ОТ
| Продукти AS Продукти
| LEFT JOIN RegisterAccumulations.FreeRemains.Remains(
| &Момент от време,
| Номенклатура Б
| (ИЗБИРАМ
| Продукти. Номенклатура AS Номенклатура
| ОТ
| Софтуерни продукти.Номенклатура = Оставаща.Номенклатура";
Request.SetParameter("TimePoint", TimePoint());

// 3. Обхождане на резултатите от заявката

// 4. Проверка на достатъчността на стоките
Дефицит = SampleProducts.Quantity - SampleProducts.Remaining;
Ако дефицит>0 Тогава
Отказ = Вярно;
Message.Text = "Продуктът "+SelectionProducts.NomenclaturePresentation+" не е достатъчен в количество "+Недостиг+" бр.";
Съобщение.Съобщение();
endIf;

// 5. Отидете в началото на цикъла, ако има грешки
Ако Провал Тогава
Продължи;
endIf;

// 6. Извършване на движения в регистри
Movement.Period = Дата;

EndCycle;

// 7. Задаване на флаг за запис на движения в края на транзакцията
Movements.FreeRemainders.Write = True;

Край на процедурата

Нека коментираме ключовите точки на алгоритъма.

1. Изчистване на стари регистърни движения

По-долу в алгоритъма ще има заявка към останалата част от регистъра.

Ако текущият документ е бил публикуван преди това, значи има вероятност за получаване на стари движения на документи в заявка– това е сериозен проблем.

Кога е възможна такава ситуация? Кога е датата на документа се движи напред.

Нека покажем с пример до какво ще доведе това:

  1. Останали настолни лампи 10 бр.
  2. Документът от 16.02.17 г. се обработва, отписваме 6 лампи
  3. Датата в документа е променена на 17.02.17 (датата може да бъде изместена напред с поне 1 секунда), нека публикуваме отново документа.

Ако не изчистите движения, системата ще отчете липса на 2 бр. Защо? Да, защото старите движения на документи отписаха 6 от 10 съществуващи лампи. След това системата се опитва да отпише още 6 броя, но остават само 4.

Проблемът се решава в 3 реда код:

  • Наборът от записи се изчиства (може да е прочетен във формуляра или в предишни манипулатори)
  • Комплектът записи има зададен флаг „Запис“.
  • Всички комплекти, които имат зададен флаг „Запис“, се записват.

Строго погледнато, ние можем да контролираме почистването на движенията при публикуване на документи:

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

2. Получаване на документни данни и регистрационни салда по заявка

Заявката се състои от два пакета:

  • В първия се получават групирани данни от табличната част - създава се временна таблица
  • При второто искане остатъците от регистъра се добавят към данните на документа.

На какво трябва да обърнете внимание в тази заявка:

  1. При създаване на временна таблица се индексира полето, върху което ще се извърши присъединяването - това се прави за оптимална производителност
  2. Моментът на получаване на салда – съответства на позицията на документа върху времевата ос
  3. Възможно е да няма остатъци в регистъра - следователно се извършва ляво съединение и се използва функцията "ECTNULL" за ресурса "Количество" - стойността NULL се намалява до нула.

3. Заобикаляне на резултатите от заявката

Разработената заявка съдържа групирани данни от документи и салда по статии.

В цикъл преминаваме през резултата от тази заявка.

4. Проверка за достатъчност на стоките

Ние определяме недостига на стоките.

Ако дефицитът е по-голям от нула, това означава, че има недостиг на стоки:

  • Издаваме диагностично съобщение
  • Задайте параметъра „Отказ“ за обработка на публикуване на „Вярно“

Ако „Отказ“ е равен на „Вярно“, тогава резултатът от транзакцията за осчетоводяване на документа няма да бъде записан. С прости думи това е команда към системата да не обработва този документ.

5. Отидете в началото на цикъла, ако има грешки

Ако е имало грешки в тази или предишни стъпки от цикъла (Отказ = Вярно), тогава няма смисъл да се формират движения. Все пак те няма да бъдат записани в базата данни.

6. Изпълнение на движения в регистри

Ако проверката на балансите е била успешна, ние създаваме движението на разходите.

7. Задаване на флаг за запис на движение в края на транзакцията

Ако този флаг не е зададен, движенията НЯМА да се записват.

В края на транзакцията за осчетоводяване на документа се записват само тези набори от записи, които имат зададен флаг „Запис“.

За да бъдем честни, отбелязваме, че настройката на свойството „Запис“ на набор от записи има смисъл при едно условие - в свойството на документа „Запис на движенията по време на изпълнение“ трябва да бъде посочена стойността „Избран запис“:

Въпреки това стойността „Избран запис“ е де факто стандартът:

  • Използва се в стандартни разтвори
  • Задава се по подразбиране при създаване на нови документи.

Друга стойност на свойството – „Write modified“ – е остаряла и практически никога не се среща в съвременните конфигурации.

Нов метод за контрол на остатъчните вещества

Новият метод използва принципа: отписваме необходимите стоки, след което проверяваме дали са формирани отрицателни салда за стоките на документа. Ако да, тогава трябва да върнете документа назад.

Както можете да видите, има фундаментална разлика в момента на контрол на балансите:

  • Старият метод е първо да проверите баланса, след което да го отпишете
  • Нова техника - първо отписваме, след това проверяваме баланса.

В резултат програмният код ще изглежда така:

ProcessingProcedure(неуспех, режим)

// 1. Получаване на данни за документи по заявка
Заявка = Нова заявка;
Query.TemporaryTableManager = NewTemporaryTableManager;
Заявка.Текст =
"ИЗБИРАМ
| Продукти. Номенклатура AS Номенклатура,
| SUM(Артикули.Количество) КАТО Количество
|продукти PLACE
| ОТ
| Документ Продажби на стоки и услуги Стоки КАТО Стоки
|КЪДЕ
| Продукти.Връзка = &Връзка
|ГРУПИРАНЕ ПО
| Продукти. Номенклатура
|ИНДЕКС ПО
| Номенклатура
|;
|////////////////////////////////////////////////////////////////////////////////
|ИЗБЕРЕТЕ
| Продукти. Номенклатура AS Номенклатура,
| Продукти. Количество като количество
| ОТ
| Продукти КАТО Продукти“;
Request.SetParameter("Връзка", Връзка);
RequestResult = Request.Execute();

// 2. Формиране на движенията - регистър потребление
Movements.FreeRemains.Clear();
SelectionProducts = Query Result.Select();
Докато SelectProducts.Next() цикъл
Movement = Movements.Free Remainings.AddExpense();
Movement.Period = Дата;
Движение.Номенклатура = ИзборПродукти.Номенклатура;
Movement.Quantity = SampleProducts.Quantity;
EndCycle;

// 3. Записване на движения в базата данни
Movements.FreeRemainders.Write = True;
Движения.Запис();

// 4. Заявка, която получава отрицателни остатъци от регистъра
Заявка.Текст =
"ИЗБИРАМ
| Остава Номенклатура КАТО Номенклатура,
| REPRESENTATIONLINK(Remains.Nomenclature) AS NomenclatureRepresentation,
| -Remaining.QuantityRemaining AS Дефицит
| ОТ
| RegisterAccumulations.FreeRemains.Remains(
| &Момент от време,
| Номенклатура Б
| (ИЗБИРАМ
| Продукти. Номенклатура AS Номенклатура
| ОТ
| Продукти КАТО продукти)) КАТО остатъци
|КЪДЕ
| Remaining.QuantityRemaining< 0";

Контролна граница = Нова граница(TimePoint(), BorderView.Include);
Request.SetParameter("TimePoint", Control Boundary);
RequestResult = Request.Execute();

// 5. Показване на съобщения за липси на стоки
Ако не QueryResult.Empty() Тогава
Отказ = Вярно;
ErrorSelect = QueryResult.Select();
Докато SelectErrors.Next() цикъл
Съобщение = Ново съобщение до потребител;
Message.Text = "Продуктът "+SampleErrors.NomenclaturePresentation+" не достига в количество "+SampleErrors.Deficiency+" бр.";
Съобщение.Съобщение();
EndCycle;
endIf;

Край на процедурата

Нека да разгледаме ключовите точки на алгоритъма.

1. Получаване на данни за документи по заявка

Тази заявка е необходима за групиране на данните в табличната част на документа.

Имайте предвид, че първата заявка в пакета създава временна таблица - тя ще бъде използвана в следващата заявка. Това е възможно благодарение на временния мениджър на таблици, който е създаден за тази заявка.

2. Оформяне на движенията - регистър разход

В цикъла данните от документа се записват в регистъра - т.е. извършва се безусловно (без проверка) отписване на стоки.

3. Записване на движенията в базата данни

За да се променят салдата в регистъра, трябва да се записват движения.

4. Заявка за получаване на отрицателни остатъци от регистъра

Сега с проста заявка избираме отрицателни салда за документни стоки.

Тук се използва временната таблица, създадена в първата стъпка - на елемента се налага условие (за това не създаваме нов обект от типа „Заявка“, а използваме създадения по-рано).

Обърнете внимание как се предава моментът във времето - използва се типът данни „Граница“. Остатъчните салда трябва да бъдат получени в даден момент непосредствено СЛЕД текущия документ.

Възможно ли е да се получат салда без рамка, например, като се добави 1 секунда към датата на документа?

Не! В крайна сметка за една секунда може да има голям брой документи. Следователно единствената правилна опция е да използвате типа граница „Включително“.

5. Показване на съобщения за липси на стоки

Ако резултатът от заявката не е празен, тогава има отрицателни остатъци - в този случай документът не се обработва и се показват съобщения за всички грешки.

Ползи от контрола на остатъчните вещества с помощта на новия метод

И така, и двата алгоритъма решават един и същ проблем.

Разликата между алгоритмите е видима, но предимствата не са очевидни.

Така че нека ги подчертаем:

  1. Няма нужда да изчиствате стари движения на документи. По същество това е операция за записване на празен набор от движения в базата данни и изтриване на съществуващи движения - това са доста ресурсоемки операции
  2. Заявка, която извлича данни за отрицателни салда, има достъп само до една таблица - няма нужда да правите ляво свързване с данните на документа и да използвате функцията “ISNULL()”.

Освен това при нормалния ход на бизнес процесите потребителят посочва количество, което не надвишава наличността в склада.

В този случай втората заявка няма да върне никакви данни и обработката на документите ще бъде възможно най-бърза.

Наистина ли са толкова важни тези милисекунди?

При бази данни с малко количество данни и потребители разликата няма да бъде забележима. Но в натоварени системи с десетки потребители цената на всяка милисекунда е висока.

Освен това, по време на изпита за специалист по платформа 1C: определено трябва да използвате нов метод за контролиране на баланси, ако конкретна задача го позволява.

Добре, значи винаги трябва да използвате нова техника, нали?

Не, това не е вярно!

Новата техника може да се използва само ако всички необходими данни за обработка на документа са в самия документ.

Тоест, за да получите данни, не е необходимо да имате достъп до регистрите, които контролират балансите.

Така например, ако сумата беше взета предвид и в регистъра „Свободни баланси“, тогава трябва да се използва старият метод на контрол.

Между другото, в стандарта „1C: Управление на търговията 11“ контролът на баланса се осъществява по нов метод, а в „1C: Счетоводство 8“ - по стария метод.

Но това не е всичко!

Алгоритмите, представени по-горе, могат да се използват само за образователни цели. Въпросът е, че те не вземат предвид контролирани брави, който трябва да се използва, ако в системата има повече от един потребител.

Обсъждат се блокове за двата метода за контрол на остатъчните вещества. Също така в тази статия решаваме по-сложен проблем - в допълнение към контролирането на балансите, ние изчисляваме цената на отписаните артикули. Препоръчваме ви да го проучите внимателно.

И като за начало, нека просто кажем това инсталирането на ключалка в новия метод е много просто– и това е още едно предимство на новия метод за контрол на остатъчните вещества.

Резултати

Нека обобщим накратко.

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

Ключова разлика между техникитев момента на контрол на балансите:

  • Стара техника - контрол преди записване на движения в регистри
  • Нова техника - контрол след запис на движения в регистри

Като цяло новата техника е по-ефективна, но не винаги е приложима.

Критерий за приложимост– ако няма нужда от достъп до данни от контролиран регистър за генериране на движения, може да се използва нова техника.

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

И накрая, примери от типични конфигурации:

  • IN UT 11има 2 основни регистъра за осчетоводяване на артикулите: Свободни остатъци (количество) и Себестойност на стоките (данни за разходите) - използва се нова методология
  • IN BP 3.0данните за разходите и салдата се съхраняват в един счетоводен регистър - използва се старият метод за контрол на салдата.