Вход | Регистрация


1С:Предприятие ::

Метки:документы

Объясните мне про последовательность документов

Я
   Таня
 
24.01.04 - 21:54
Если можно на пальцах и с примером, а то я сама ничего понять не могу, хотя все что было прочитала.
 
  Рекламное место пустует
   Alexandr
 
1 - 24.01.04 - 22:35
Простейший пример:
1.Начислили деньги на зарплату.
2.Получили деньги из банка на зарплату.
3.Выдали деньги из кассы на зарплату.
Если сначала начислять то:
1.В кассе может не оказаться денег.
2.Будет отрицательная сумма.
Если в один и тот-же день происходит операция получения денег из банка и выдачи зарплаты, необходимо первым проводить документ банковский, затем кассовый.
Если произошла ошибка и кассовый стоит первым то правой кнопкой мыши измени время банковской операции на начало суток (дня) а кассовый документ на конец дня.
Вроде все!
   345
2 - 24.01.04 - 22:45
Последовательность - это очень мудрая штука ... которую придумали программисты из фирмы 1С ... чем сильно упростили себе жизнь... но при этом ВЕСЬ дурдом они переложили на тех, кто эксплуатирует их программу... в результате чего все кто эксплуатирует ОперУчет (Торговлю) - занимаются дурдомом ...

На фирму поступают документы (и товары)
(далее первая цифра - номер дока)
по мере их обработки выстраивается последовательность документов, введенных друг за другом. Пусть программист задал, что в последовательности участвуют доки Приходн накладная и Расходн накладная

1. Пришла ПрНакл Товар ААА - 10 штук, первого числа
2. Расх Накл, тов ААА продан, 3 штуки, второго числа
3. Расх Накл, тов ААА продан, 3 штуки, третьего числа
4. Расх Накл, тов ААА продан, 1 штук, четверт числа
5. Расх Накл, тов ААА продан, 1 штук, пятого числа
на остатке 2 шт

Допустим, сразу при продаже выписывались доки и сразу же вводились в систему.... Последовательность идет по возрастанию дат, все документы введены каждый в свой день. Граница последовательности (ГП) стоит на документе 5....

Допустим, шестого числа пришел долбаный покупатель ... оплатил 3 штуки, но попросил оформить документы 3 числом. Манагер оформил док РасхНакл номер 6 третьим числом. Документ встал в последовательность, растолкав доки 3 и 4 и втиснувшись по дате! и времени! между ними... т.е. последовательность нарушилась - документ введен задним числом. ГП установилась на документ 6.
Сама последовательность выглядит так
1 2 3 6 4 5 ....   т.е. последовательность нарушена...

нарушение последовательности - штука коварная ...
К чему это приводит....
Документ 6, проводимый 3 числа, естественно, проверяет остатки на складе.... НО!!! проверяет их на третье число ... Он не видит движения от 4 и 5 числа.... Естественно, на это число в примере есть требуемое количество товара - документ проведется

вот как выглядят остатки товаров по датам при ненарушенной последовательности после каждого документа …

норм посл       нарушенная посл
1   +10            +10
2   +7            +7
3   +4            +1         после дока 6
4   +3            0        
5   +2            -1

таким образом, проверяя остатки только на 3 число, док 6 решает, что все нормально, но т.к. он не видит движений от 4 и 5 числа …. Получается, что он не корректирует остаток после каждого документа, который стоит после него в последовательности…. Такое нарушение последовательности при вводе доков задним числом приводит к красным остаткам… Чем дальше оторвана ГП (граница послед) от Точки актуальности (ТА) – тем это страшнее….  

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

- проведение задним числом более медленное, чем на ТА (остатки на ТА хранятся уже рассчитанными)

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

- там еще куча неприятностей – опустим для краткости..


Можно восстановить последовательность – перепроведя  документы с ГП до последнего дока по времени (до ТА)…  При этом вылезет масса всяких неприятностей (если технология работы на фирме плохая)…..

Вот основной трах и идет при эксплуатации – геморрой  просто свален на программиста – эксплуатационника…..

Можно изменить алгоритмы – но это надо переписать очень много …. К тому же на ТиС есть ямы – в виде тормозного расчета …

P.S. – партионный учет на бух компоненте при правильной реализации (не от 1С) не допускает красных (отрицательных) остатков по партиям – и работает быстро ……
   Таня
 
3 - 24.01.04 - 22:47
Это мне понятно, меня интересует, как программно работать с последовательностью. В условии сказано "восстановить последовательность документов".
И еще, почему при повторном проведении документа у которого уже есть движения по регистру эти движения удаляются, если я использую такую Процедуру
Процедура ОбработкаПроведения(Флаг)
    ВыбратьСтроки();
    Если ПустоеЗначение(Флаг) = 1 Тогда
        
        Пока ПолучитьСтроку() = 1 Цикл
            Регистр.ПродажиТоваров.Движение(Товар,Товар.Поставщик,Отдел,Количество,Стоимость);
        КонецЦикла;
    Иначе
        Пока ПолучитьСтроку() = 1 Цикл
            Регистр.ТоварныйЗапас.ДвижениеРасход(Товар,Отдел,Количество, Товар.Себестоимость*Количество);
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
   WhiteCat
 
4 - 24.01.04 - 22:55
Я понимаю, здесь немного не то нужно, о чем рассказал Александр. Вернее, то, но немного не так. Не руками нужно отслеживать очередность проведения документов, а автоматически, и делается это с помощью Последовательностей (Метаданные->Документы->Последовательности)


Смотри. Есть Склад и Товар. Товар пришел на склад:

1. ПриходнаяНакладная Кол=10

На остатках сейчас 10 единиц Товара. Второе событие: Товар продается:

2. РасходнаяНакладная Кол=8

На остатках должно остаться 2 единицы Товара

А теперь заходим в Приходную накладную из операции 1 и меняем 10 на 5. Что получим на остатках? -3, а это не есть хорошо.

Задача пользователя программы состоит в том, чтобы предотвращать подобные попадосы. А для этого необходимо следить за изменением документов задним числом, то есть отслеживать САМЫЙ РАННИЙ ИЗМЕНЕННЫЙ ДОКУМЕНТ и перепроводить все последующие документы, чтобы сразу выявлять подобные каки. Вот для этого и нужны Последовательности. Они отслеживают изменения по какому-нибудь Регистру (Регистр устанавливается в свойствах Последовательности) и запоминают самый ранний измененный документ - , а вернее его Дату и Время, что в совокупности называется Границей Последовательности
   345
5 - 24.01.04 - 22:55
И вся страна трахается с перепроведением ...

в других системах этого нет ....
   GrayT
 
6 - 24.01.04 - 22:58
(3) А движения удаляются, т.к. у документа стоит "Автоматически удалять движения"
   vdi
 
7 - 26.01.04 - 08:29
Здравствуйте Таня!

Границу последовательности (ГП), наверное, и в самом деле придумали в 1с. Однако им нечего было бы придумывать, если бы учет ТМЦ всегда велся бы по фактической себестоимости. На самом деле законодательством предусмотрено еще три способа учета себестоимости: по средней, ФИФО и ЛИФО. и суть в том, что эти методы чувствительны к хронологической последовательности проведения документов поступления и отгрузки  1с здесь уже ни в чем не виновата - Закон такой. Иначе говоря результат суммовых итогов зависит от того в какой последовательности вы проводите один и тот же набор документов.

Вот наглядный пример. Учет ведется по средней и для простоты предположим, что на 10 января на складе отсутствуют остатки товара. Выполняем следующие действия.

1) 10 января получаем 100 шт. товара по цене 10 руб./шт. Легко понять, чо на счете 41.1 будет записано 10 шт. товара на сумму 1000 руб. Следовательно средняя себестоимость сейчас совпадает с ценой покупки - 10 руб./шт.

2) 20 января продано 100 шт товара. Очевидно, что со счета 41.1 эти товары спишутся по среднй цене равной 10 руб./шт.

3) 15 января мы получили еще 100 шт. такого же товара по цене 30 руб./шт., но скажем, забыли его вовремя ввести. Документ приходования введен только 20 января или позже.

Итак на лицо нарушение ГП проведения документов. Восстанавливаем ГП. В результате последовательность наших операций выстраивается в ряд - 1(10 января), 3(15 января) и 2(20 января).

Нетрудно подсчитать, что на момент отгрузки товара (20 января) средняя стоимость списания товаров со счета 41.1 теперь равняется величине (100 шт.*10 руб.шт.+100 шт.*30 руб./шт.)/(100 шт.+100 шт.)=20 руб./шт., а не 1000 руб., как это было раньше. Следовательно, с баланса будет списана не 1000 руб., а 2000 руб.

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

С уважением vdi. К сожалению относительно программирования я вам не помощник.
   345
8 - 26.01.04 - 08:50
Товарисч vdi слегка слаб в законодательстве... Ибо приведенный им пример списания ЯВНО описан в ПБУ ....

И что самое прикольное .... Явно реализован в 1С ... т.е. в 1С есть списание по средней ДВУМЯ методами ...

один метод называется по средней ... второй - по средней на момент документа ...

Учите типовые ...!!!!!

Методы ФИФО/ЛИФО - в реализациях от 1С не просто зависят от последовательности... Они целиком построены на ней ... Тут с бронепоезда никуда не денешься...

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

Реализовать другие методы в 1С сложно - производительности не хватает... Причеи наращивание мощности сервера и прочие ухищрения мало помогают - только отодвинуть момент смерти ...

Но возвможно ... Надо только подумать ....
   Львенок
 
9 - 26.01.04 - 09:22
(8) Я все думаю, как делать этот партионный учет нормально, чтоб без боли и гемороя? Может подскажешь основные мысли?
___
Искренне Ваш, Львенок.
   vdi
 
10 - 31.01.04 - 05:48
Всем добрый день.
Уважаемый г. 345 спровоцировал меня продолжить тему. Я, действительно, не считаю себя знатоком ПБУ. Однако это совершенно не относится к сущности обсуждаемой темы. Вероятно, г. 345 считает, что метод оценивания некоторой случайной величины придуман "людьми из ПБУ". Огорчу. Читайте теорию вероятностей и статистику. В ПБУ просто узаконен один из множества алгоритмов оценивания истинного значения случайной величины. Причем узаконенный алгоритм (средневзвешенная оценка) справедлив для оценивания случайных величин, распределенных исключительно по нормальному закону. Для других распределений он будет давать ну очень грубые оценки. Конечно, никто из продавцов товара не станет оценивать закон распределения цен на тот или иной товар. Это просто безсмысленно. На практике и в теории, когда мало или ничего не известно, говорят "давайте предположим". Вот издесь предположили, что цены приобретения распределены по нормальному закону. Отсюда и и алгоритм средневзвешенной оценки этой цены.

ПБУ не являтся автором способов оценок - оно просто узаконило несколько алгоритмов. Если, мне не изменяет память кроме описанного способа есть еще "по фактической себестоимости" (В ПБУ он как-то по другому назвается), а также ФИФО и ЛИФО. Здесь можно порассуждать о правомерности всех этих методов, но уже другая тема.

Вернемся к нашим баранам. Цитирую г-на 345: "Методы ФИФО/ЛИФО - в реализациях от 1С не просто зависят от последовательности... Они целиком построены на ней ... ". Интересно, а   как может быть иначе? Как рассчитать массу с ускорением движущегося тела без использования 2-го закона Ньютона???  Давайте рассмотрим метод ФИФО. Вынужден подчеркнуть, что сущность метода демонстрирую на некотором виртуальном языке, который не имеет ничего общего с языком 1с.


1) 10 января получено 200 пар валенок по цене 10 руб. за пару на сумму 2000 руб.

2) 15 января отгружено (из партии за 10 января) 200 пар валенок по цене 10 руб. за пару на сумму 2000 руб.

3) 05 января было получено 100 пар валенок по цене 15 руб. за пару. Однако по какой-то причине вовремя эта партия не была оприходована и зарегистрирована лишь после 2-й операции.

В результате имеем нарушение хронологического проведения документов: 10 января, 15 января и 05 января. Наш остаток теперь сформирован лишь партией от 05 января в количестве 100 пар на общую сумму 1500 руб. Но это не соответствует выбранной нами учетной политики! Перепроводим документы в хронологической поседовательности. Заметим, что к 1с это не имеет ни малейшего отношения. Однако в ее это называется восстановить ГП.


3) 05 января было получено 100 пар валенок по цене 15 руб. за пару на сумму 1500 руб.

1) 10 января получено 200 пар валенок по цене 10 руб. за пару на сумму 2000 руб.

2) 15 января отгружено 200 пар валенок. Согласно методу ФИФО сначала отгружается товар из первой партии и в случае его недостатки из второй партии и т.д. Следовательно из партии от 05 января будет отгружено 100 пар по цене 15 руб. на сумму 1500 руб. Оставшиеся 100 пар отгружаются из партии от 10 января, но уже по цене 10 руб. за пару, на сумму 1000 руб.

Очевидно, что теперь сумма отгрузки согласно учетной политики равняется 2500 руб., а не 2000 руб., как было до восстановления ГП. То же самое относится и к остатку на складах. В первом (некорректном) случае этот остаток сформирован партией от 05 января и равен 1500 руб. - 100 пар по 15 руб. В действительности после восстановления ГП, этот остаток обусловлен партией от 10 января и равен 1000 руб. - 100 пар по 10 руб. Обратите внимание на то, что количественный учет не зависит от метода оценки себестоимости. В обоих случаях остатко равен 100 парам.

Цитируем дальше г-не 345: "Во многих других системах нет понятия последовательности ... но тем не менее все рабоатет правильно ...". К сожалению я не знаком с системами других разработчиков. Однако, следуя общесистемному принцмпу, можно сделать следующие выводы.

1) Г-н 345 не совсем прав в оценке этих систем.
2) В этих системах используется только метод оценки по фактической себестоимости.
3) В этих системах используются методы по средней, ФИФО и ЛИФО, однако восстановление хронологической последовательности документов выполняется автоматически, скрытно от пользователя.
4) Разработчики этих систем не знают, что такое  методы по средней, ФИФО и ЛИФО. Это гипотетическое предположения и потому абсолютно не реальное!

ВЫВОДЫ. Можно ли пользователя избавить от перепроведения документов с целью восстановления ГП. Думаю, что теоретически да. Вот только зачем усложнять алгоритмы. Мой скромный опыт (с 1998 г.) не знает ни одного пользоваеля, который бы применял методы ФИФО и ЛИФО. Все они используют методы либо по средней, либо по фактической себестоимости. В этой связи хотелось бы обратиться к разработчикам 1с с просьбой разработать более технологичные приемы учета себестоимости по фактической себестоимости.

С уважением ко всем участникам и особенно к моему оппоненту, vdi.
 
  Рекламное место пустует
   Таня
 
12 - 31.01.04 - 10:20
Люди добрые!!!!Ё!

Я знаю что такое партионный учет. Я не знаю как мне использовать объект метаданных Последовательность документов. В задаче сказано, чтобы она была восстановлена. Как это сделать!?

И еще раз поднимаю свой второй вопрос, который почему-то никто не заметил:
Почему при повторном проведении документа у которого уже есть движения по регистру эти движения удаляются, если я использую такую Процедуру
Процедура ОбработкаПроведения(Флаг)
   ВыбратьСтроки();
   Если ПустоеЗначение(Флаг) = 1 Тогда
       
       Пока ПолучитьСтроку() = 1 Цикл
           Регистр.ПродажиТоваров.Движение(Товар,Товар.Поставщик,Отдел,Количество,Стоимость);
       КонецЦикла;
   Иначе
       Пока ПолучитьСтроку() = 1 Цикл
           Регистр.ТоварныйЗапас.ДвижениеРасход(Товар,Отдел,Количество, Товар.Себестоимость*Количество);
       КонецЦикла;
   КонецЕсли;
КонецПроцедуры
   mike
 
13 - 31.01.04 - 11:58
1 при повторном проведение все движения сначала удаляются и ничего здесь не сделаешь. такой механизм заложен в 1с.  
2 Последовательность - глобальный объект (красные буквы)
Как с ним работать : можно посмотреть в ТС 9 :
в глобальном модуле :
Функция глВосстановлениеПоследовательности(ВыбПоследовательность) Экспорт
3 Если нужно уловить до перепроведения движения то это можно сделать только через обработку типа :
///
Если  док.Проведен()=1 тогда 
// анализируем движения 

  ....
глПеременная = ... все движения ;

Док.Провести ()

КонецЕсли;   

а в модуле документа :

процедура ОбработкаПроведения()  
все движения ... = глПеременная;
... что делаем 

КонецПРоцедуры
   GrayT
 
17 - 31.01.04 - 12:33
По поводу последовательности. Граница последовательности стоит на документе проведенном последним. Если этот документ проведен задним числом (временем), то появляется нарушение границы последовательности. Т.е. в !С все хорошо пока документы проводяться в правильной хронологической последовательности (тогда точка актуальности и граница последовательности совпадаю).
Смотришь методы по последовательностям и пишешь программ, что если граница последовательности отстала от ТА, то перепроводишь все документы входящие в последовательность в диапазоне от ГП до ТА
   Таня
 
18 - 31.01.04 - 13:08
Ок, извини, не заметила (6):)
Убрала галку. В обработкеПроведения дописала
Если Проведен() = 1 Тогда
ОчиститьДвижения();
КонецЕсли;
Теперь из обработки он нормально проводится, но почему-то перестали проводится накладные, которые проводятся при наличии движения по регистру ПродажиТоваров, которые формируются документом Товарный Чек. Чего-то не пойму никак, наверно тупая :(
   Таня
 
19 - 31.01.04 - 13:18
Спасибо GrayT.
Переделала ОчиститьДвижения("Регистр.ТоварныйЗапас");
Теперь все как надо проводит.
   vdi
 
20 - 01.02.04 - 09:42
Вопрос 345-у.
Забудьте на время об 1с и ПБУ. Вот вы пишете, что "Методы ФИФО/ЛИФО - в реализациях от 1С не просто зависят от последовательности... Они целиком построены на ней ... ".

Из этой фразы следует, что методы ФИФО/ЛИФО не зависят от хронологической последовательности проведения документов. Если и Вы считаете так, ка пишете, то я могу только развести руками.

Правда мне кажется, что хотели Вы сказать совсем другое. А именно - существуют более эффективные алгоритмы реализации партионного учета. При их реализации пользователю достаточно указать нужную дату документа и программа все сделает сама так, как надо. Это замечательно! Кто же против?

Цитата 345-го: "Это не противоречие - просто в ПБУ есть ДВА способа расчета средней - средневзвешенная за период и средневзвешенная на момент документа... ".

Почему- то 345-й скромно умалчивает, что в  ПБУ 5/01  "Учет материально-производственных запасов"  описаны и другие методы из-за которых разгорелся сыр-бор. Придется процитировать.
    16. При отпуске материально-производственных запасов (кроме товаров,
учитываемых  по  продажной  стоимости)  в  производство и ином выбытии их
оценка производится одним из следующих способов:
    по себестоимости каждой единицы;
    по средней себестоимости;
    по      себестоимости     первых     по     времени     приобретения
материально-производственных запасов (способ ФИФО);
    по     себестоимости     последних     по    времени    приобретения
материально-производственных запасов (способ ЛИФО).

Цитата 345-го: "Если просчитать себестоимость и прибыль по одному товару за достаточно длительный период (например, год) - то расчет даст интересные цифры ... Вне зависимости от методики расчета себестоимости - прибыль будет одинаковой ....".
На самом деле ничего неожиданного  здесь нет, если не ограничивать себя познаниями в области ПБУ. Просто 345-й на пороге вторичного  открытия Закона больших чисел. Это вызывает, поверьте, неподдельное восхищение.

С уважением vdi.



Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует