1с изменить движения документа по регистру

Обновлено: 07.07.2024

есть документ на 1000 строк, мне нужно изменить движение по 50 строкам для 2х регистров, проблемма в том, что отбор по измерению не работает :) собствено кто знает как победить?

Рег = РегистрыНакопления.ТекущиеКомиссии.СоздатьНаборЗаписей();
Если Рег.Отбор.Регистратор.ТипЗначения.СодержитТип(ТипЗнч(мДок)) Тогда

Рег.Отбор.Добавить("ДенежноеТребование");// тут ошибка

ТПР_Рег = Рег.Выгрузить(Новый Массив());

-------------------------
и все движения записывать не охота (там последовательность сдвинится) и по 1 строке - тоже не дело.

Надо было заменить тип и значение субконто по сложному алгоритму.
Делал так:

PS Не уверен, что последовательность не сдвинется.

+ к (1): Видимо в запросе к таблице оборотов регистра у тебя будет условие Регистратор ССЫЛКА Документ.ДенежноеТребование и возможно какие-то еще твои условия отбора.

(0) Как то странно ты это делаешь.
Почему не так:

т.е. у конкретного дока набор прочитать и поменять.

(3) Зачем получать весь объект целиком, если для доступа к его движениям достаточно только ссылки?

Вот это точно совершенно лишнее телодвижение при работе с базой и если документов очень много и они разные и возможно достаточно большие.

(4) не придирайся. тут пример накиданный за 10 сек. смысл в сути.

(5) Я к сути и придираюсь :)

Нафига тебе целый документ-объект, когда достаточно документ-ссылки?

Суть набора записей регистра совершенно не поменяется от того, каким образом ты его получил - через коллекцию Движения объекта или через установку отбора по регистратору на набор записей.

(0) "и все движения записывать не охота (там последовательность сдвинется)" - а с фига ли она сдвинется? :-)

Изменять ручками движения - опасно. Если у тебя документ потом перепроведут ненароком - все движения опять съёдут по новой.

Не совсем понятен смысл операции. и кстати.. а зачем делать такие монстроидные документы?

(3) я-же сказал, что не хочу записывать весь набор
(7) сдвинутся по тому, что есть движения регистра, так-же зарегятся изменения в планах обмена для всего набора целиком.
по поводу перепроведения - я знаю
(1) это то-же что и у меня, записывается весь набор.

мне нужно записать 5 строк из набора движений в 1000 строк и при этом не хочется дергать все тригеры которые висят на регистрах

(8) вроде только писать весь набор. По-другому никак. Единственно, через другой регистратор можно, завести документ "Корректировка движений регистров" и в нем ввести корректирующие проводки.
(0) прочитать набор по регистратору, изменить (любым способом), записать набор. или не читать, а тупо по новой набор сделать.
Странно, а свойство объекта документа "Движения" чем не подходит?
Получил объект, получил движения, переделал как надо, записал.
да похер, сдвинь, потом границу последовательность обратно перетяни

(11) синтакс помощник говорит
Отбор (Filter)
Использование:
Только чтение. .

(16) читай внимательнее - написано, отбор только по регистратору и он обязателен

Это фантастика :-) Последовательность тесно связана с понятием Граница, а значит зависит ТОЛЬКО от двух компонент от даты документа (а она у тебя не меняется) и от гуида документа(он тоже у тебя остаётся тем же самым). Следовательно при этих условиях при перепроведении документа Граница НЕ МОЖЕТ измениться ни при каких обстоятельствах.

Насчёт правил обмена - аналогично. Неужели ты думаешь, что перепроведение документа это уже повод помещения в обмен всех его движений по регистрам "по новой"? Да ты что.. обмен бы тогда бы пух немеряно.

Короче - продолжаю настаивать, что ты сейчас решаешь не ту задачу (мнение безусловно лично-экспертное)

(18) >> а значит зависит ТОЛЬКО от двух компонент от даты документа (а она у тебя не меняется) и от гуида документа.

А перечень регистров в последовательности просто так указывается? Для красоты?
Если я правильно понимаю, то последовательность контролирует именно изменение регистров, а не проведение документа. Просто в обычной работе изменение регистра связано с проведением документов.

(19) "А перечень регистров в последовательности просто так указывается? Для красоты? "

Они указываются для процедуры "восстановление последовательности". Что бы данная процедура могла найти "концы" что нужно перепроводить.

но если даты у доков не меняются и гуиды те же. то перепроведение документа ничего не сбивает в последовательности

(21) а можно "ответы на вопросы" в качестве апа?

Почему считаете, что из-за перепроведения - меняется последовательность (если не меняется дата)

почему считаете, что в обмены идут не объектные данные, хотя более здраво передавать объекты, а движения по регистрам уже делать "на месте"?

Обработка позволяет внести изменения в движения документа по отдельным регистрам, не перепроводя документ.
Запись происходит в режиме "ОбменДанными.Загрузка".
Обработка предназначена для конфигураций, работающих в режиме управляемого приложения.

Для выполнения изменения движений по определенному регистру требуется:

1. Выбрать Документ;

2. Выбрать изменяемый регистр;

3. Внести изменения в регистр;

4. Записать движения по регистру. (Записывается набор записей только одного регистра 3.)

К изменению движений следует относиться внимательно, т.к. запись происходит в режиме "ОбменДанными.Загрузка", и, следовательно, минует проверки в модуле набора записей регистра.

Еще раз подчеркну: Обработка может быть опасна! Она рассчитана только на людей, понимающих механизмы платформы 1С.

Особенного контроля требует изменение записей в регистре бухгалтерии!

При аналогичном методе записи в регистр бухгалтерии, я сталкивался с тем, что на НЕ валютные счета в поле Валюта записывалось Пустое значение справочника Валюты, а не NULL (Неопределено), что не верно и приводило к "появлению в оборотке валютных движений на невалютном счете".

Кроме того пристального внимания требует заполнение Субконто и ВидовСубконто! Тут тоже возможны неприятные результаты, в случае неправильного заполнения.

Ну и еще, естественно, что при перепроведении документа его движения заменятся на стандартные.

17.07.2015 17:15:00 Загружена доработанная версия. Сделал проверку и исправление данных при записи регистра бухгалтерии по признакам валютного и количественного учета в "стандартном" регистре бухгалтерии.

2015-07-17 20:23:15 Загружена доработанная версия. Сделал проверку заполнения имеющихся у счета субконто при записи регистра бухгалтерии. (но "лишние" субконто не проверяются, т.е. если у счета два субконто, то третий проверяться не будет!)

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

В формировании данных движения по регистрам участвуют практически все документы из программы 1С. Исключением является информация в регистрах бухгалтерии. Регистры содержат всю необходимую информацию для создания отчетов. Изучим на примере актуальной версии 1С Бухгалтерия 8 3.0, процесс формирования записи в регистре «Начисления зарплаты»..


. и «Реализации услуг». Из записей становится ясно, что помимо бухгалтерских операций, отчет о движении документа содержит разные закладки. Так выглядят записи регистров, для каждого документа они меняют свой вид.


Изучить движение по регистрам возможно с помощью активации функции «Показать проводки и другие движения по регистрам». Эта функция доступна в любом журнале документов.


В случае, если регистров много, пользователь может отобрать нужные, активировав функцию «Еще» - команда «Выбор регистров».



После установки фильтров, в отчете пользователю будут видны только операции по выбранным регистрам.



Существует два метода корректировки регистров:

  • используя документ «Операция»;
  • с помощью ручной корректировки документа.

Рассмотри эти методы подробнее.

Корректировка регистра через документ "Операция"

Посмотрим журнал «Операции, введенные вручную» из вкладки «Операции».


Поле «Создать» содержит три вида операций:

  • Операция;
  • Сторно документа;
  • Типовая операция.


Две первых функции используются для редактирования данных регистра.

Документ "Операция"

Посмотрим, как документ «Операция» помогает корректировать регистры.


В сформированном отчете по сотруднику «Карточка счета» (вкладка «Отчеты» - «Стандартные») явно видно, как прошла измененная бухгалтерская проводка. Снижение на двести рублей дает изменение в сумме начисленной заработной платы (21660-200=21460).


Пока в общих оборотах расхождений не видно. Для контроля сформируем отчет в налоговую по форме 2-НДФЛ (вкладка «Отчеты» - «Регламентированные отчеты»). В отчете сумма за декабрь не изменилась. Это следствие того, что не были созданы движения по регистрам, которые нужны для составления отчетов. В отчеты наша операция изменения не внесла.


Возвратимся к работе с документом «Операция». С помощью вкладки «Еще» - активируем «Выбор регистров».


Из появившегося списка выбираем пункт «Учет доходов для исчисления НДФЛ».


В рабочем документе «Операция» возникнет еще одна вкладка, содержащая название выбранного регистра. Во вкладке пользователь добавляет запись дополнив ее необходимой информацией.


Проведем изменения в регистре с помощью функции «Операция». В процессе формирования ведомостей по заработной плате используется несколько регистров, в примере мы исследуем изменение одного.

Сформируем отчет в налоговую заново. Теперь искомая сумма изменилась - это признак того, что операцию по корректировке регистра мы провели правильно.


Из приведенного выше примера становится ясно, что отчеты формируются из информации содержащейся в регистрах. Разового изменения бухгалтерской записи может быть недостаточно. Внести поправки в регистры возможно сделать с помощью функции «Операция, введенная вручную».

Документ "Сторно"

Функция документа Сторно состоит в том, чтобы вносить изменения в бухгалтерские операции прошлого и даже закрытого периода. Изменения вносятся просто. Необходимо только выбрать документ для внесения изменений. Записи в таблице доступны для корректировки.



Данная операция рассматривается как пример. Некоторые программы поступают к пользователю уже с корректировочными документами. В программе 1С Бухгалтерия предусмотрены следующие корректировки:

  • реализации;
  • поступления;
  • долгов покупателю или поставщику.



Регистры, сформированные обработкой «Свертка информационной базы»

Остановимся еще на одном методе корректировки информации в регистрах. Когда программа 1С работает с огромным массивом данных, она совершает большое количество операций. Это сказывается на скорости реагирования на команды пользователя. Проблема решается с помощью очистки информации из регистров. Необходимо навести определенный порядок в информационной базе. Очень удобно использовать для этого функцию «Свертка информационной базы». Она по желанию пользователя сформирует остатки по регистрам на выбранную дату.


Пользователь может изменять или просто удалить полученный отчет. Он расположен в журнале «Операции, введенные вручную».


Работа программы 1С базируется на записях регистров. Неправильная корректировка приведет к искажению информации, которая будет сформирована в отчет. В случае, если при проведении корректировок у вас возникают вопросы, обращайтесь к нашим специалистам.

Читайте также: