|   |   | 
| 
 | можно ли использовать новую методику контроля отрицательных остатков в 81 | ☑ | ||
|---|---|---|---|---|
| 0
    
        asergn2 06.10.11✎ 18:01 | 
        Можно ли использовать новую методику контроля отрицательных остатков в среде платформы 81. Хотелось бы аргументированный ответ..     | |||
| 6
    
        Jstunner 06.10.11✎ 18:06 | 
        в 8.1 движения вообще лучше делать на сервере     | |||
| 7
    
        asergn2 06.10.11✎ 18:06 | 
        быстрее должно работать.. просто этот метод описан как метод для 82, но не объясняется почему.. может этот метод возможно применять и в 81?     | |||
| 8
    
        shuhard 06.10.11✎ 18:07 | 
        (7) а в 8.1 у документа есть свойство не менять модифицированные движения ?     | |||
| 9
    
        asergn2 06.10.11✎ 18:09 | 
        нету вроде как..     | |||
| 10
    
        shuhard 06.10.11✎ 18:10 | 
        (9) может об этом стоит задуматься     | |||
| 11
    
        ado 06.10.11✎ 18:22 | 
        (0) Увидев этот метод в Радченко, подумал: "Ля, какая ересь. Провели, потом откатили -- это ж лишние телодвижения над базой, снижение производительности."
  А вот у Чистова прочитал: "Нет необходимости получать излишние данные (остатки) для проведения документа. Ведь мы чаще все же записываем документ с правильными цифрами и он проводится, чем документы которые уводят остатки в минус.", и чорд, а ведь верно. | |||
| 12
    
        unregistered 06.10.11✎ 18:31 | 
        (11) Дело не только в том, что "мы чаще все же записываем документ с правильными цифрами и он проводится, чем документы которые уводят остатки в минус".
  Там еще выигрыш по времени действия установленных блокировок. Только от момента записи до окончания проведения. В случае классического способа проведения блокировки необходимо устанавливать раньше - перед/в момент чтением остатков. | |||
| 13
    
        DmitrO 06.10.11✎ 18:39 | 
        (10)задумался.. не вижу препятствий применять этот метод     | |||
| 14
    
        DmitrO 06.10.11✎ 18:45 | 
        (12) но в новом способе остатки тоже считаются и тоже во время блокировки. в чем тут изюм?     | |||
| 15
    
        unregistered 06.10.11✎ 18:46 | 
        (13) Будешь дважды записывать наборы записей в регистры.
  Первый раз принудительно Движения.Записать(). Второй раз - автоматически по окончании выполнения обработки проведения. В 8.2 при установке свойства "Записывать выбранные" по окончании обработки проведения будут записаны только те наборы записей, у которых свойство Записывать = Истина. Метод Записать() коллекции Движения сбрасывает это свойство в значение Ложь, исключая таким образом повторную запись. | |||
| 16
    
        DmitrO 06.10.11✎ 18:48 | 
        (15) разьве после записи набора записей регистра у него останется модифицированность? (в следствие которой и происходит запись набора по окончании обработки проведения)     | |||
| 17
    
        GreyK 06.10.11✎ 18:51 | 
        Попытка использования контроля отрицательных остатков при любых движениях - это плюс.     | |||
| 18
    
        unregistered 06.10.11✎ 18:51 | 
        (14) Блокировки устанавливаются одинаково, но в разное время:
  Классический метод: Установка блокировок Чтение остатков Формирование наборов с одновременной проверкой нехватки. Запись движений по окончании обработки проведения. Снятие блокировки Новый метод: Формирование наборов Запись движений !Тут устанавливается блокировка Чтение остатков Окончание обработки проведения Снятие блокировки. Как видно, во время формирования наборов записей (которое в некоторых случаях может быть не фига не быстрым) блокировки отсутствуют. Соответственно другие пользователи могут работать с этими же наборами по этим же измерениям. | |||
| 19
    
        unregistered 06.10.11✎ 19:03 | 
        (16) А разве 8.1 анализирует Модифицированность набора?     | |||
| 20
    
        DmitrO 06.10.11✎ 19:06 | 
        т.е. выигрываем время формирования наборов, ну это плюс, согласен
  но минусом является не возможность использования текущих данных регистра по этим измерениям (средняя стоимость, партии и т.п.), т.е. регистр должен быть весьма простой, время формирования набора по такому регистру потенциально не велико, но оно есть. | |||
| 21
    
        unregistered 06.10.11✎ 19:10 | 
        (20) Для случая, когда необходимо расчитывать себестоимость или среднюю стоимость, новый метод неприменим. Только для тупого контроля остатков.
  Предполагается, что расчет себестоимости будет проводиться отдельным регламентом или обработкой. | |||
| 22
    
        Asmody 06.10.11✎ 19:15 | 
        (20) а кто-то всё ещё считает себестоимость при проведении документов?     | |||
| 23
    
        DmitrO 06.10.11✎ 19:18 | 
        (22)автоматический зачет аванса по документам взаиморасчетов, например?     | |||
| 24
    
        GreyK 06.10.11✎ 19:23 | 
        (23) Издеваешься?     | |||
| 25
    
        Asmody 06.10.11✎ 19:24 | 
        (23) ну может быть. у нас авансы к заказам привязаны, там особых проблем нет     | |||
| 26
    
        DmitrO 06.10.11✎ 22:03 | 
        И еще одно замечание. Учитывая все выше сказанное, и если исходить из того, что для проведения по регистру не нужны текущие данные регистра, то набор записей и в классическом методе проведения можно сформировать до чтения остатков (т.о. до начала блокировки, т.о. также сэкономить время формирования набора), при этом в запросе чтения остатков можно также учесть данные уже записанного документа и получать в выборку только отрицательные.
  Кстати сказать, на 77 прямыми запросами через 1сpp так и делали, уже давно. | |||
| 27
    
        ОчкарикСлава 06.10.11✎ 22:24 | 
        Ура!
  Наконец то в этой ветке (ИМХО) копья по теме доломали и сожгли. Сколько их тут было прежде, не сосчитать... | |||
| 28
    
        zak555 06.10.11✎ 22:26 | 
        (0) это методика нужна для доков с возможностью оперативного проведения     | |||
| 29
    
        DmitrO 06.10.11✎ 22:44 | 
        (28)а это еще почему? неужели потому, что статье описывающей методику в запросе контроля остатков не стоит параметр периода в виртуальной таблице?     | |||
| 30
    
        iamnub 06.10.11✎ 22:48 | 
        (11)
  Сначала ты подумал "ля, какая ересь". Потом ты подумал "Чорд, а ведь правильно". | |||
| 31
    
        zak555 06.10.11✎ 22:52 | 
        (29) потому что док, который есть возможность оперативного проведения не всегда может провестись неопреативно
  тогда смысла контроля остатков отпадает | |||
| 32
    
        zak555 06.10.11✎ 22:53 | 
        (29) где статья и причём тут параметры виртуальной таблицы ? о_О     | |||
| 33
    
        shuhard 06.10.11✎ 22:54 | 
        (31) полный бред,
  ни какого отношения к предмету топика | |||
| 34
    
        zak555 06.10.11✎ 22:56 | 
        + (31) тем более проще приявязвать строки ТЧ к строкам движений по регистру     | |||
| 35
    
        zak555 06.10.11✎ 22:56 | 
        (33) ???     | |||
| 36
    
        cost10 06.10.11✎ 23:05 | 
        Вот 2 видео по теме:
  http://www.youtube.com/watch?v=Bn5cUahkuR8 http://www.youtube.com/watch?v=S2qCuvuEuxQ Может быть что то прояснит. | |||
| 37
    
        Asmody 06.10.11✎ 23:11 | 
        (28) если док проводится неоперативно, то какой смысл проверять остатки? Точнее, какие остатки проверять?     | |||
| 38
    
        kiruha 06.10.11✎ 23:27 | 
        Судя по всему - если очень много строк - по новой методике будет выигрыш, если мало - пофиг     | |||
| 39
    
        Snovy 06.10.11✎ 23:33 | 
        Вариант А) Перед проведением сняли остаток, посмотрели - не хватает - фиг вам...
  Вариант Б) Во время проведения - сняли остаток, попытались списать - не хватает - фиг вам... Вариант В) Во время проведения - списали?, после списания посмотрели остаток - не хватает - фиг вам... Какой из вариантов лучше? ИМХО А) - но его никогда не было в типовых - раньше Б), теперь В). | |||
| 40
    
        Asmody 06.10.11✎ 23:38 | 
        (39) стоп-стоп! а чем А) от Б) отличается? способом сравнения двух чисел?     | |||
| 41
    
        unregistered 06.10.11✎ 23:41 | 
        (38) А как же экономия на записи?
  При старой методике запись наборов делается дважды: первый раз перед снятием остатков (удаление движений в 8.1) второй раз - по окончании обработки проведения. По новой методике - один единственный раз Движения.Записать(). Запись на самом деле занимает дофига времени. | |||
| 42
    
        DmitrO 06.10.11✎ 23:45 | 
        (41) да што ж такое, почему ты решил что будет писаться дважды-то?     | |||
| 43
    
        unregistered 06.10.11✎ 23:47 | 
        (42) Перед началом обработки роведния старые движения документа     | |||
| 44
    
        DmitrO 06.10.11✎ 23:47 | 
        пишутся только модифицированные наборы! В 8.2 у документа тоже есть такой способ записи движений, он как раз и остался от 8.1 и 8.0     | |||
| 45
    
        unregistered 06.10.11✎ 23:48 | 
        (42) Перед началом обработки проведения старые движения документа куда денуться?     | |||
| 46
    
        DmitrO 06.10.11✎ 23:48 | 
        (43)и чего?     | |||
| 47
    
        unregistered 06.10.11✎ 23:49 | 
        (44) в 8.1 и 8.0 движения писались дважды:
  первый раз - пустые наборы второй раз - модифицированые | |||
| 48
    
        unregistered 06.10.11✎ 23:49 | 
        (46) см. (45)     | |||
| 49
    
        Snovy 06.10.11✎ 23:50 | 
        (40) В 2004 я тоже думал, что офигенная разница... А когда узнал, что транзация начинается в форме перед записью - то ничем... Но все зависит от реализации в коде.
  Например - единожды Перед записью получили остаток, проверили, при прохождении использовани полученный остаток в проведении, если не прошло - выдали отказ (перед записью). Это А. Б - это зашли в обработку проведения и уже там получили остаток и проверили и списали либо выдали отказ. Еще раз - по хорошему А) правильнее, но с точки зрения начала транзакции в 1С - А и Б одинаковы. Но если посмотреть код типовых - то до начала проверки наличия остатка типовая фигачит кучу запросов к базе, которые можно бы не делать, если остатка не хватает... | |||
| 50
    
        unregistered 06.10.11✎ 23:50 | 
        в 8.2 по умолчанию пустые наборы не записываются.
  Поэтому до тех пор пока ты не скажешь Движения.Записать() или дойдя до конца обработки проведения система сама не запишет новые наборы, старые вполне себе живут. | |||
| 51
    
        DmitrO 06.10.11✎ 23:52 | 
        (45) пустые наборы пишутся перед началом обработки проведения если у документа стоит признак Удалять движения автоматически. Это тут причем?     | |||
| 52
    
        Snovy 06.10.11✎ 23:52 | 
        (50) Еще раз мое мнение - мы теряем кучу времени на проведение документа, который все равно учйдет в отказ - это правильно?     | |||
| 53
    
        Asmody 06.10.11✎ 23:53 | 
        (49) т.е. ты предлагаешь в методе А получить остатки, а потом начать транзакцию? дык, у тебя между этими двумя моментами остатки поменяются сто питсот раз     | |||
| 54
    
        unregistered 06.10.11✎ 23:53 | 
        (52) Ну если у тебя большинство документов уходят в отказ, то ты теряешь время. В противно случае - выигрываешь.     | |||
| 55
    
        Snovy 06.10.11✎ 23:55 | 
        (53) Да, я предлагаю так. Но, во первых - вы правы по поводу "сто питсот раз" (хотя и это решаемо), во вторых - в платформе 1С это невозможно...     | |||
| 56
    
        unregistered 06.10.11✎ 23:56 | 
        (51) Ты издеваешься? Почему надо по сто раз тебе одно и то же рассказывать?
  При оперативном проведении по старой методе тебе придется записать пустой набор принудительно, чтобы получить остатки БЕЗ учета старых движений документа. А потом еще раз по окончании обработки проведения. | |||
| 57
    
        Snovy 06.10.11✎ 23:57 | 
        (54) А степень "большинства" документов неизвестна... Если свято верить, что пользователь правдиво вводит в док именно то, что есть на остатках, тогда и контролировать остатки не нужно. Но получать их все равно нужно для оценки себестоимости выбытия, так почему бы заодно и не проверить на достаточность списанного?     | |||
| 58
    
        unregistered 06.10.11✎ 23:57 | 
        + к (56) Конечно при неоперативном проведении (остатки на МоментВремени) старые движения можно и не удалять, записывая пустые наборы.     | |||
| 59
    
        unregistered 06.10.11✎ 23:59 | 
        (57) Еще раз: при необходимости расчета себестоимости новый метод использовать невозможно. Так что и обсуждать нечего.
  Новый метод используется там, где нужно ТОЛЬКО контролировать остаток. | |||
| 60
    
        Asmody 07.10.11✎ 00:01 | 
        (55) возможно. ключевое слово "управляемые блокировки". только зачем огород городить?     | |||
| 61
    
        Snovy 07.10.11✎ 00:05 | 
        (60) Не, это тут совсем ни при чем... Давайте отвлечемся...
  У вас в саду на яблоне висят пять яблок. Пришел чел и говорит: А) продай мне три яблока Б) продай мне шесть яблок Ваши действия? | |||
| 62
    
        Asmody 07.10.11✎ 00:06 | 
        (61) в порядке поступления. первому три, второму два (если захочет)     | |||
| 63
    
        Asmody 07.10.11✎ 00:07 | 
        и вообще, есть отдел маркетинга и рекламы, вот пусть они и объяснят челу, почему ему нужно именно пять яблок     | |||
| 64
    
        DmitrO 07.10.11✎ 00:08 | 
        (56)да при оперативном получается необходимо чистить набор, корректируя таблицу оперативных итогов - это не эффективно.
  Эффективно будет просто вычесть старые движения из оперативных итогов. | |||
| 65
    
        Snovy 07.10.11✎ 00:11 | 
        (62) Не, не так. Чел один, запросов (вариантов) два...
  1) Сказал продам, пошел в сад, сорвал яблочки, отдал 2) Сорвал яблочки, если три продал, если пять - не хватает 3) Пошел в сад, посмотрел сколько яблок.... далее алгоритм понятен 4) Продал, взял деньги.... шесть нет, отдал деньги ну или .... Вот как бы вы действаовли с точки зрения автоматизации? | |||
| 66
    
        unregistered 07.10.11✎ 00:12 | 
        (64) То есть получить итоги, потом выполнить вычитание, потом всё остальное?
  Ну может это и будет быстрее (?), чем запись пустого набора. Только мы опять вернемся к необходимости установки блокировки в самом начале. Причем набор измерений в старом наборе записей и в новом могут не совпадать... | |||
| 67
    
        Adept 07.10.11✎ 00:17 | 
        (0) Вроде кто то писал что будут проблемы. Типа в 8.2 раз записал и все, автоматом при проведении не запишутся, а в 8.1 будет полюбому еще раз записано(хотя в документации сказано что только модифицированные наборы должны записаться)     | |||
| 68
    
        unregistered 07.10.11✎ 00:17 | 
        (65) Мне твоя логика понятна.
  Но остается один вопрос. Предположим, я, еще до того как дал согласие на продажу яблок, проверил их наличие. Яблок хватает. Ок. После этого иду рвать яблоки с дерева, прихожу - а яблок осталось два (какая-то падла сорвала их, пока я давал добро на продажу). И что? | |||
| 69
    
        DmitrO 07.10.11✎ 00:19 | 
        (66)в старом методе мы блокируем именно при выполнении запроса контроля остатков, просто в нем надо еще учесть возможные текущие движения по регистратору, это представляется простой задачей.     | |||
| 70
    
        Adept 07.10.11✎ 00:21 | 
        (66) Обнеси заборчиком дерево на время пока бегать будишь     | |||
| 71
    
        Adept 07.10.11✎ 00:21 | 
        +(70) к (68)     | |||
| 72
    
        unregistered 07.10.11✎ 00:22 | 
        (67) Еще один. Ну при чем тут модифицированность?
  В 8.1 запись делается в любом случае дважды - первый раз (перед обработкой проведения или в самой обработке если НеУдалятьДвиженияАвтоматически) пустые наборы, второй раз - по окончании обработки проведения вновь сформированные. В 8.2 - пустые наборы не записываются. Старые движения живы, пока не запишутся новые. | |||
| 73
    
        unregistered 07.10.11✎ 00:22 | 
        (70) Установить блокировку вне транзакции?     | |||
| 74
    
        Adept 07.10.11✎ 00:23 | 
        (72) Вариант перед я вообще не рассматривал, тогда трижды от начала проведения, первый для очищения, второй для проверки, третий автоматом     | |||
| 75
    
        Adept 07.10.11✎ 00:23 | 
        (73) Почему вне? в Транзакции при проведении     | |||
| 76
    
        ОбычныйЧеловек 07.10.11✎ 00:24 | 
        (70) т.е. в 8.2 не надо очищать движения регистров перед перепроведением документа  с вариантом "НеУдалятьДвиженияАвтоматически"?     | |||
| 77
    
        Adept 07.10.11✎ 00:25 | 
        (76)а нафига? сами удаляться когда ты туда новые наборы писать будешь.     | |||
| 78
    
        ОбычныйЧеловек 07.10.11✎ 00:26 | 
        (77) а откуда такая уверенность то туда будут записаны новые данные?     | |||
| 79
    
        unregistered 07.10.11✎ 00:26 | 
        (69) >> надо еще учесть возможные текущие движения
  А старые движения Пушкин учитывать будет? | |||
| 80
    
        Asmody 07.10.11✎ 00:27 | 
        (65) проблема в том, что продавцов у нас не один, а сто один и каждый яблоки рвать ходит.     | |||
| 81
    
        unregistered 07.10.11✎ 00:27 | 
        (78) Для это дятел-программист должен написать 
  Движения.МойЧудоРегистр.Записывать = Истина; | |||
| 82
    
        Adept 07.10.11✎ 00:27 | 
        (78) Ну если ты используешь методику контроля в (0) то будут полюбому, если не используешь то все равно запишешь результирующие движения в конце проведения, то есть руками надо только при отмене проведения     | |||
| 83
    
        unregistered 07.10.11✎ 00:28 | 
        (80) +100500 Вот и я о том же в (68).     | |||
| 84
    
        Adept 07.10.11✎ 00:29 | 
        (83)(80) Они ж к дереву не смогут подойти, даже остатков не прочитают, в чем проблема то?     | |||
| 85
    
        unregistered 07.10.11✎ 00:32 | 
        (84) Проблема в том, что ты ветку не прочитал.
  Snovy агитирует 1С за проверку движений ДО начала транзакции. Когда ни каких блокировок еще нет. Лично я - против. | |||
| 86
    
        DmitrO 07.10.11✎ 00:36 | 
        да Snovy не прав, это было ясно с самого 1го его поста     | |||
| 87
    
        DmitrO 07.10.11✎ 00:39 | 
        а для того чтобы использовать новый метод в 8.1 необходимо и достаточно:
  1.снять флажок у документа: Автоматическое удаление движений; 2.в обработке удаления проведения обеспечить удаление движений; 3.в обработке проведения использовать новый метод проведения. | |||
| 88
    
        unregistered 07.10.11✎ 00:41 | 
        (87) в пункте 2 вместо "обработке УДАЛЕНИЯ проведения" надо просто в "обработке проведения"
  И весь профит от нового метода коту под хвост. Но формально его использовать можно. А толку?... | |||
| 89
    
        ОбычныйЧеловек 07.10.11✎ 00:42 | 
        (81) если у регистра "МойЧудоРегистр" были движения а при перепроведении документа модифицированности это регистра не произошло то данный регистр сам обнулится, так?     | |||
| 90
    
        DmitrO 07.10.11✎ 00:46 | 
        (88)ты не прав, там все правильно написано     | |||
| 91
    
        unregistered 07.10.11✎ 00:47 | 
        (90) Я уже устал для тебя повторять. Там не правильно написано.     | |||
| 92
    
        unregistered 07.10.11✎ 00:48 | 
        (89) Если в обработке проведения указано Записывать = Истина для этого регистра и при этом в набор ни чего не добавлялось, то запишется пустой набор.     | |||
| 93
    
        ОбычныйЧеловек 07.10.11✎ 00:50 | 
        (92) ясно, пасиб.     | |||
| 94
    
        DmitrO 07.10.11✎ 01:08 | 
        (92)и что? В 8.1 у коллекции движений нет метода Записать, поэтому там мы будем записывать сам набор записей, даже если туда ничего не добавлялось он запишется, тем самым очистит старые движения.     | |||
| 95
    
        unregistered 07.10.11✎ 01:10 | 
        (94) Принудительная запись отдельных наборов влечет повышение риска взаимных блокировок.
  Запись всех движений сразу этот риск снижает. А так-то - да ни чего. | |||
| 96
    
        DmitrO 07.10.11✎ 01:12 | 
        ну я тебя умоляю, это же легко организовать, они наверняка еще в коллекции именно в том самом нужном порядке содержятся.     | |||
| 97
    
        unregistered 07.10.11✎ 01:15 | 
        (96) Что легко организовать? Сортировать вручную наборы по порядку следования их в метаданных, а потом записывать?
  Ну хочется тебе так - ради бога пиши всё это руками. Только зачем?... Ты на одной только работе с метаданными прокакаешь времени больше, чем на саму запись с контролем остатков и расчетом себестоимости. | |||
| 98
    
        DmitrO 07.10.11✎ 01:21 | 
        (97)не то чтобы хочется, это необходимо для применения этого метода в 8.1. Мне кажется в реальных задачах у документов с таким методом проведения регистров будет не много, обеспечить правильную запись будет легко.     | |||
| 99
    
        unregistered 07.10.11✎ 01:23 | 
        (98) Еще раз: Формально метод применить можно, но выигрыша он не даст ни какого. СОВЕРШЕННО.
  Слишком много извращений придется предпринять для его реализации в 8.1. | |||
| 100
    
        DmitrO 07.10.11✎ 01:27 | 
        (99) он даст точно такой же выигрыш как и на 8.2, ибо он делает тоже самое. Чего много? каких извращений? На 8.2 просто чуть-чуть удобнее.     | |||
| 101
    
        kiruha 07.10.11✎ 01:35 | 
        (99)
  Насчет удаление движений Во первых - большинство документов проводится один раз, а не перепроводится Во вторых - насчет перепроведения. 1С не поддерживает вложенных транзакций - как тут уже тут писали она начинается в ПередЗаписью в форме. А теперь сюрприз - посмотри что делается в УТ 11 до проведения | |||
| 102
    
        unregistered 07.10.11✎ 08:42 | 
        (101) >> большинство документов проводится один раз
  Совершенно верно. Однако это не избавляет от необходимости записывать пустые наборы записей, если тебе нужны остатки без учета старых движений. >> посмотри что делается в УТ 11 до проведения А разве УТ при списании проводится по новой методике? | |||
| 103
    
        Дикообразко 07.10.11✎ 08:45 | 
        контроль остатков вообще ересь     | |||
| 104
    
        ado 07.10.11✎ 09:39 | 
        (102) Зачем записывать пустые наборы данных, если старых движений у нас нет? Если документ в первый раз проводится?     | |||
| 105
    
        Дикообразко 07.10.11✎ 09:44 | 
        (104) да и перепроведении совсем не всегда обязательно старые движения очищать (это кстати реализовано уже года 2 как в УПП)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |