0
- 08.02.2013 - 09:58
|
Суть вопроса: возможно ли изменить значение субконто одной или нескольких проводок не через НаборЗаписей регистра бухгалтерии, т.е. не делая НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗапис ей(); НаборЗаписей.Отбор.Регистратор.Установить(Регистра тор); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл ... КонецЦикла; НаборЗаписей.Записать(); Почему не хотелось бы так? Потому что регистратор в конкретном случае может содержать десятки тысяч проводок и запись Набора записей может занять продолжительное время. Можно ли как-то точечно изменять проводки и их изменения записывать? | |
1
- 08.02.2013 - 10:05
|
НаборЗаписей.Записать(Ложь) тебе в помощь. ЗЫ как планируешь обеспечивать скорость/параллельность при отмене проведения/перепроведении документа? | |
2
- 08.02.2013 - 10:55
| Все люди делятся на две категории: те, которые никогда не изменяют проводки документов и те, которые больше этого никогда не будт делать... | |
3
- 08.02.2013 - 12:17
|
Синтаксис: Записать(<Замещать>) Параметры: <Замещать> (необязательный) Тип: Булево. Определяет режим замещения существующих записей в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям. А как поможет в данном случае Параметр Ложь? Задача заключается в том, чтобы изменить значение Субконто в проводке, то есть в одной из записей набора, если будет применен метод Записать с параметром Ложь, то записи из набора будут добавлены, а старые будут не затронуты? | |
4
- 08.02.2013 - 12:28
|
3-Franklin > Применение "в лоб" не поможет. Но по некоторому размышлению можно понять, что получить идентичный результат можно не изменяя проводку, а добавляя пару к уже существующему набору. ЗЫ 2-Климов Сергей > + 100500. | |
5
- 08.02.2013 - 12:37
|
На конкретном примере: Документ содержит 30 тыс. проводок, необходимо изменить только одну. По предлагаемому способу нужно в набор записей регистратора добавить одну запись, то есть создаем набор записей, добавляем в него запись, которая является результатом желаемых изменений, и делаем НаборЗаписей.Записать(Ложь). А неправильную запись как удаляем? Путем считывания записей в набор с отбором по регистратору, удалением этой записи из набора и далее НаборЗаписей.Записать(истина)? а в чем тогда оптимизация? | |
6
- 08.02.2013 - 12:40
| 5-Franklin > читай внимательней: Сказано достаточно | |
7
- 08.02.2013 - 12:45
| Я прочитал внимательно и видел слово "пару", то есть предлагается сделать старой записи ее "сторно"? Но задача именно изменить в той записи, что была. Поясни, пожалуйста, что значит пару? | |
8
- 08.02.2013 - 12:54
| 7-Franklin > правильно думаешь. Читай внимательней: нигде не сказано, что с помощью Записать(Ложь) задачу в таком виде можно решить. Можно получить идентичный (с точки зрения учета) результат. В 99,(9)% процентах случаев этого будет достаточно. | |
9
- 08.02.2013 - 12:57
| Нет, в данном случае необходимо решить задачу именно изменением субконто в существующей записи, потому что нужно убрать упоминание об этом субконто в ряде документов за определенный период. Или же, например, если понадобилось бы удалить физически значение субконто, которое уже сидит в проводках. То есть, варианты решения этой задачи отсутствуют? | |
10
- 08.02.2013 - 13:17
|
9-Franklin > 1) ник Franklin никак не ассоциируется с "данным случаем" 2) увы, отсутствуют 3) нужно убрать упоминание об этом субконто - зачем? такая потребность, действительно, реально существует при необходимости физически удалить элемент справочника, являющийся значением субконто. Но это регламент и делать его быстро совсем ни к чему. ЗЫ Документ содержит 30 тыс. проводок - сам себе злобный буратина. Зато научит думать вперёд о последствиях :) | |
| Интернет-форум Краснодарского края и Краснодара |