|   |   | 
| 
 | Вопросы по проведению документа и влиянию транзакции на регистр | ☑ | ||
|---|---|---|---|---|
| 0
    
        vitaliklibra 28.05.15✎ 07:51 | 
        Доброе утро всем!
 Вопрос 1: Если документ уже проведен, то если по его нажатию происходит его проведение с запросом о режиме проведения. В то же время, если документ не проведен, по нажатию "Записать" он действительно только записывает. Как это исправить? Вопрос 2: В том же документе, по нажатию кнопки "ОК" происходит оперативное проведение без запроса вариантов! А если я перепровожу документ (в настройках движения стоит вариант "Удалять автоматически") - мне нужно (даже ВАЖНО!) оставить дату и время предыдущего проведения!!! Было бы правильнее ссылаться на то, если бы этот документ уже проводился, то проводить неоперативно, а если проводится впервые, то оперативно. Как это настроить? Вопрос 3: Опишу ситуацию. Это пример того, как реализованы банковские выписки в 7-ке. У меня есть такой же документ, где в табличной части построчно вписаны мои платежи с соответствующим видом ДДС. Так вот. Существует ли возможность при проведении учитывать движение по регистру после обработки каждой такой строки? В том смысле, что если у меня есть приход по какому-то измерению по одной строке, и если у меня будет еще такая строка с таким же измерением, но только расход, чтобы произошёл сразу взаимозачет. Поясню на своем примере: В регистре у меня есть 2 ресурса: "НашДолг" и "ДолгКонтрагента". В зависимости от того какая операция, я сначала должен списать один долг, а потом начислить другой. Для запроса данных по долгам в цикле делаю запрос для каждой строки (УЖ ПРОСТИТЕ, ЧТО ЗАПРОС В ЦИКЛЕ - если кто подскажет, как обойтись здесь без него - буду очень признателен!): ВЫБРАТЬ ЕСТЬNULL(СУММА(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.НашДолгОстаток, 0)), 0) КАК НашДолгОстаток, ЕСТЬNULL(СУММА(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.ДолгКонтрагентаОстаток, 0)), 0) КАК ДолгКонтрагентаОстаток ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки КАК ВзаиморасчетыСКонтрагентамиОстатки ГДЕ ВзаиморасчетыСКонтрагентамиОстатки.Контрагент.Ссылка = &Контрагент Но пока транзакция не пройдет по конца ТЧ документа, у меня запрос не видит никаких остатков, хотя они там реально появляются!( Должна картина быть примерно такой (это условно): Приход/Расход НашДолг ДолгКонтрагента Контрагент1 Приход 50 + 50 0 Контрагент1 Расход 70 - 50 0 0 + 20 Контрагент1 Приход 50 0 - 20 + 30 0 ------------------------------------------------------------------------ Остаток 30 При этом у меня есть 3 платежа (3 строки): - Платеж входящий на сумму 50; - Платеж исходящий на сумму 70; - Платеж входящий на сумму 50. Очень прошу помощи!!! Запарился с этими проведениями... =( Только прошу, ребят, не пишите, мол делай по примеру, как в типовой конфе, да еще и в 7-ке! Я до этого и сам как-то догадался, да только помощи прошу сейчас, ссылаясь на опыт участников форума! | |||
| 1
    
        vitaliklibra 28.05.15✎ 08:08 | 
        (0)  Вопрос 1 снят. Разобрался: есть флаг в свойствах формы "ПриЗаписиПерепроводить".     | |||
| 2
    
        vitaliklibra 28.05.15✎ 08:11 | 
        + (0)  Столкнулся еще с такой штукой, что если в модуле объекта менял программно видимость/доступность каких-то элементов формы, то при перепроведении таких документов из открытого документа все ОК, а если выбрать через контекстное меню в форме списке команду "Провести" или через групповое перепроведении - НЕ перепроводит. Говорит, ошибка(( Как еще и это поправить?     | |||
| 3
    
        Ненавижу 1С гуру 28.05.15✎ 08:12 | 
        "модуле объекта менял программно видимость/доступность каких-то элементов формы"
 модуль объекта не должен знать ни о каких формах | |||
| 4
    
        vitaliklibra 28.05.15✎ 08:15 | 
        (3) А как мне тогда лучше сделать такое, чтоб у меня кнопки становились доступны, если документ проводится?     | |||
| 5
    
        vitaliklibra 28.05.15✎ 08:24 | 
        (0) Вопрос 2 тоже снят: если также флаг на форме "ИспользоватьРежимПроведения". Установил в значение "Неоперативный" - работает как и надо.     | |||
| 6
    
        Ненавижу 1С гуру 28.05.15✎ 08:55 | 
        (4) в модуле формы     | |||
| 7
    
        vitaliklibra 28.05.15✎ 08:57 | 
        (6) А в каком событии описать изменение доступности реквизитов формы?     | |||
| 8
    
        vitaliklibra 28.05.15✎ 09:32 | 
        Ребят! Очень нужна помощь! Есть ли возможность разделить транзакции при обработке проведения, чтоб при каждой итерации запрашивать корректные данные из регистра? (к слову о 3-й вопросе?) Если да, то где можно почитать?     | |||
| 9
    
        Zhuravlik 28.05.15✎ 09:36 | 
        (8) гугли на тему управляемых блокировок     | |||
| 10
    
        Zhuravlik 28.05.15✎ 09:38 | 
        + как по мне - вот лучшая статья для введения в эту тему: http://курсы-по-1с.рф/articles/статья-платформа-блокировки/     | |||
| 11
    
        Cyberhawk 28.05.15✎ 09:41 | 
        "разделить транзакции при обработке проведения, чтоб при каждой итерации запрашивать корректные данные из регистра"
 Деать проводки, которые опираются на часть уже сделанных этим же документом проводок - не айс | |||
| 12
    
        vitaliklibra 28.05.15✎ 09:46 | 
        (11) А как тогда быть, когда нужно учитывать остатки по регистру после каждой новой записи в него?     | |||
| 13
    
        Джинн 28.05.15✎ 09:52 | 
        (12) Изменить алгоритм с кривого на нормальный.     | |||
| 14
    
        Zhuravlik 28.05.15✎ 09:52 | 
        (12) Какой-то действительно странный подход. Вроде как в руках все карты - можно сделать проверку. Добавляемые данные в таблицу, свернуть по измерениям/ресурсам, сделать проверку по остаткам. Промежуточная запись в регистры при проведении - насколько я знаю - используется в двух случаях: когда необходимо проверить оперативный остаток (10), и когда необходимо делать движения по регистрам расчета. А вот на (0) смотрю - и не пойму зачем там такие сложности. По-идее нужно (10) реализовывать.     | |||
| 15
    
        palpetrovich 28.05.15✎ 09:56 | 
        (8) ЗАЧЕМ "запрашивать корректные данные из регистра"?!! ...это что, при проведении по партиям, к примуру, после каждой строчки состояние регистра перечитывать???
 сначала расчитывай все что нужно, потом проводи | |||
| 16
    
        vitaliklibra 28.05.15✎ 10:00 | 
        (13) Если бы я знал, каков он нормальный или как его таковым сделать, поверь, я бы тему не создавал.
 (15) Рассчитать все, что нужно не подходит, т.к. мне нужно будет видеть в отчете отдельные записи: какие суммы и куда вносились. А если все рассчитать сразу, то детализации не получится. | |||
| 17
    
        vitaliklibra 28.05.15✎ 10:07 | 
        (14) Вот мне как раз и нужно проверить оперативный остаток!) Вот только о нем я в статье ничего не нашел... А блокировка данных при транзакции не блокирует отдельные итерации внутри транзакции, потому у меня все равно все будет рассчитываться последовательно без учета того, что уже было внесено в регистр.     | |||
| 18
    
        Zhuravlik 28.05.15✎ 10:14 | 
        (17) мне кажется у тебя с мат. часть. проблемы.  А статья - сплошь сверху-донизу именно о оперативном остатке, причем на пальцах. Отработай статью. Или формализуй проблему в (0) - потому что я до сих пор не понял в чем сложность?     | |||
| 19
    
        vitaliklibra 28.05.15✎ 10:23 | 
        (18) Проблемы, спорить не буду! Вот и сижу-разбираюсь.
 Поясню еще раз. Есть ОДИН документ, в котором есть 3 строки в ТЧ, отражающие внесение суммы в регистр: - Платеж входящий на сумму 50; - Платеж исходящий на сумму 70; - Платеж входящий на сумму 50. При проведении документа мне нужно выполнять движения по регистру, согласно этим цифрам и измерениям, но делать это так, будто эти строки в ТЧ - это отдельные документы оплат. И мне нужно это в регистр записать вот так: http://i.piccy.info/i9/d6693437cb4ac93573f3f539f8624de4/1432793365/12274/913097/2015_05_28_090910.jpg т.е. чтобы была детализация в отчете по каждой такой строке. Согласен, похоже на партионное списание, но в воем случае получается, что 2 ресурса - "НашДолг" и "ДолгПокупателя" - они связаны! И если на одном будет > 0, то на втором будет 0. А если начать прибавлять на 2-й ресурс, что сначала уменьшить первый до 0, а только после этого увеличивать 2-й. | |||
| 20
    
        Zhuravlik 28.05.15✎ 10:29 | 
        (19) Как я и думал - проблемы с мат. часть. Структура регистра: измерения - Организация/Контрагент, ресурс - Сумма. Запись движений, контроль остатков по статье в (10). Дальше - написание соотв. отчета. 
 - Посмотри в типовых РН "РасчетыСПокупателями", и подобный отчет. | |||
| 21
    
        Zhuravlik 28.05.15✎ 10:31 | 
        + Если надо расшифровывать до строки табл. части - просто не сворачивай перед проведением набор данных, тогда в таблице оборотов и будет эта детализация, ее можно из РН в отчете вытащить.     | |||
| 22
    
        vitaliklibra 28.05.15✎ 10:32 | 
        (21) "просто не сворачивай перед проведением набор данных" - как это сделать?
 (20) Регистр у меня очень похож на типовый, но ресурса ДВА! И из-за этого-то вся сложность. | |||
| 23
    
        Zhuravlik 28.05.15✎ 10:34 | 
        (22) 
 не сворачивать?.. - ресурс - один. В отчете - два показателя. | |||
| 24
    
        vitaliklibra 28.05.15✎ 10:38 | 
        (23) Ты у себя же спрашиваешь?) Не пойму, что ты хотел сказать словами "не сворачивать?.. -"
 "ресурс - один. В отчете - два показателя." Т.е. просто накапливать в минус сумму взаиморасчетов, и разделение крЕдита/обязательств будет определять знак. Так? | |||
| 25
    
        Cyberhawk 28.05.15✎ 10:38 | 
        (12) имея остатки по регистру + данные в документе, ты еще до начала проведения можешь все спрогнозировать (посчитать и получить)     | |||
| 26
    
        vitaliklibra 28.05.15✎ 10:41 | 
        (25) Согласен, могу. См. (16)  - не подходит этот вариант.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |