|
Создание Регистра Бухгалтерии | ☑ | ||
---|---|---|---|---|
0
Дебет
25.03.16
✎
10:26
|
создал самописный док который должен делать проводки, табл в 100 записей вешает программу =(
Что я делаю не так? для Каждого МЦ из ТабЗатрат цикл НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей .Отбор.Регистратор.Установить(Ссылка); НаборЗаписей.Прочитать(); НаборЗаписей.Записывать=Истина; Движение = НаборЗаписей.Добавить(); Движение.СчетКт = МЦ.СчетАмортизации; Движение.СубконтоКт.Номенклатура = МЦ.ОбъектУчета; Движение.СубконтоКт.ПартииМатериаловВЭксплуатации = МЦ.ДокументПередачи; Движение.СубконтоКт.РаботникиОрганизаций = МЦ.ПодразделениеФизЛицо ; Движение.Сумма = МЦ.Сумма; Движение.СуммаВРКТ = МЦ.СуммаВР; Движение.СуммаПРКТ = МЦ.СуммаПР; Движение.СуммаНУКТ = МЦ.СуммаНУ; Движение.Период = Дата; Движение.Организация = Организация; НаборЗаписей.Записать(); КонецЦикла; |
|||
1
Timon1405
25.03.16
✎
10:28
|
Пятница-жестятница
|
|||
2
shuhard
25.03.16
✎
10:29
|
(0)НаборЗаписей.Записать();
КонецЦикла; |
|||
3
Дебет
25.03.16
✎
10:31
|
(2) за цикл вынести?
|
|||
4
Живой Ископаемый
25.03.16
✎
10:32
|
Это неправильный код.
Вместо НаборЗаписей.Записать(); Надо: Для Каждого Колонка ИЗ ТабЗатрат.Колонки Цикл НаборЗаписей.Записать(); КонецЦикла; |
|||
5
Дебет
25.03.16
✎
10:48
|
(4) в чем различие?
|
|||
6
Nuobu
25.03.16
✎
11:09
|
Вынеси создание и запись набора записей за цикл.
|
|||
7
PR третий
25.03.16
✎
11:17
|
(4) Это ненадежно.
Нужно дополнительно в цикле запускать цикл на 100 итераций с записью набора. В особо важных базах, где важна отказоустойчивость, на 1000. |
|||
8
Дебет
25.03.16
✎
11:29
|
(6) вынес за цикл в итоге программа выдает -Недостаточно памяти
Записей 250 НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей .Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка); НаборЗаписей.Записывать=Истина; для Каждого МЦ из ТабЗатрат цикл Движение = НаборЗаписей.Добавить(); Движение.СчетКт = МЦ.СчетАмортизации; Движение.СубконтоКт.Номенклатура = МЦ.ОбъектУчета; Движение.СубконтоКт.ПартииМатериаловВЭксплуатации = МЦ.ДокументПередачи; Движение.СубконтоКт.РаботникиОрганизаций = МЦ.ПодразделениеФизЛицо ; Движение.Сумма = МЦ.Сумма; Движение.СуммаВРКТ = МЦ.СуммаВР; Движение.СуммаПРКТ = МЦ.СуммаПР; Движение.СуммаНУКТ = МЦ.СуммаНУ; Движение.Период = Дата; Движение.Организация = Организация; КонецЦикла; НаборЗаписей.Записать(); |
|||
9
Любопытная
25.03.16
✎
11:32
|
(8) А документ является регистратором для регистра? Если да, то почему не через Движения документа делаете?
|
|||
10
shuhard
25.03.16
✎
11:32
|
(8) продолжай наблюдение
|
|||
11
Nuobu
25.03.16
✎
11:36
|
(8) .Прочитать();
|
|||
12
Дебет
25.03.16
✎
11:36
|
(10) конечно в типовой бухии ведь много такого можно просто копи паст сделать....
|
|||
13
Любопытная
25.03.16
✎
11:37
|
(11) Зачем читать?
|
|||
14
Nuobu
25.03.16
✎
11:37
|
(8) К восьмому посту количество записей увеличилось более чем вдвое.
|
|||
15
Nuobu
25.03.16
✎
11:38
|
(13) Да, можно не читать, ошибся))
|
|||
16
Дебет
25.03.16
✎
11:38
|
(14) разные периоды
|
|||
17
Nuobu
25.03.16
✎
11:39
|
(16) Не забудь ".Прочитать();".
|
|||
18
Дебет
25.03.16
✎
11:40
|
(17) пробывал НаборЗаписей.Прочитать(); результат -недостаточно памяти
|
|||
19
Nuobu
25.03.16
✎
11:41
|
(18) А ты точно не хочешь использовать движения?
|
|||
20
Любопытная
25.03.16
✎
11:42
|
(18) Ты его читаешь, а потом в него же добавляешь записи. Старые при этом не очищаются. Если уж прочитал, тогда очищай после прочтения.
И попробуй все-таки через таблицу движений документа сделать. |
|||
21
Дебет
25.03.16
✎
11:42
|
(19) можно по подробней?
|
|||
22
Любопытная
25.03.16
✎
11:42
|
И еще надо бы на структуру регистра посмотреть конечно
|
|||
23
Nuobu
25.03.16
✎
11:44
|
(21)
НаборЗаписей = ЭтотОбъект.Движения.Хозрасчетный; НаборЗаписей.Записывать=Истина; для Каждого МЦ из ТабЗатрат цикл Движение = НаборЗаписей.Добавить(); Движение.СчетКт = МЦ.СчетАмортизации; Движение.СубконтоКт.Номенклатура = МЦ.ОбъектУчета; Движение.СубконтоКт.ПартииМатериаловВЭксплуатации = МЦ.ДокументПередачи; Движение.СубконтоКт.РаботникиОрганизаций = МЦ.ПодразделениеФизЛицо ; Движение.Сумма = МЦ.Сумма; Движение.СуммаВРКТ = МЦ.СуммаВР; Движение.СуммаПРКТ = МЦ.СуммаПР; Движение.СуммаНУКТ = МЦ.СуммаНУ; Движение.Период = Дата; Движение.Организация = Организация; КонецЦикла; НаборЗаписей.Записать(); |
|||
24
hhhh
25.03.16
✎
11:45
|
(23) тогда
НаборЗаписей.Записать(); не нужно. 2 раза записываете |
|||
25
Живой Ископаемый
25.03.16
✎
11:46
|
У меня тоже выдает что памяти недостаточно, но только когда провдок 1400000 (миллион 400 тысяч), когда 600 тысяч - то все норм.
Но и то, это из-за того. что я записываю набор записей на толстом клиенте, который 32-битный. Писал бы я на сервере, думаю. что и два миллиона записал бы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |