Как скопировать движения документа 1с
Перейти к содержимому

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

  • автор:

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

Есть обработка, читающая и изменяющая движения документа, текст примерно следующий:
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ДокОтбор = НаборЗаписей.Отбор.регистратор;
ДокОтбор.установить(ВыбДок.Ссылка);
НаборЗаписей.Прочитать();
Для каждого Зап из НаборЗаписей Цикл
//
Конеццикла;
Так вот как проще сделать копирование движений, то есть я бегу по движениям и создаю такое же,с изменением только сумма (задача очень специфичная), как в коде проще сделать, чтобы не писать новый набор, потом добавить и т.д. Помогите, плиз..

и для чего такая муть нужна?

Геморрой еще тот: но в общем цель такая: есть реализация с обычным набором проводок, затем по итогам месяца контрагенту дается определенная скидка, поэтому нужно обычную проводку разделить на 2 части, общая сумма и сумма скидки с разными значениями субконто, вот и приходится такую муть писать..вот так..

(3) лучше это делать дополнительным документом, а не программно править проводки у существующего документа. например часть суммы отсторнировать и сделать дополнительную проводку

опять же нужно обратиться к движениям другого документа и исправить только часть реквизитов в проводке, а все остальное тоже самое..может и туплю, но как проще это сделать, без перебора все рекизитов Движения?

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

46845

Не устроил ответ?
Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.

Реклама

Новые вакансии

  • Вакансия: Разработчик 1С, Москва, удалёнка/гибрид, 200-300 net от yskinkurogova
    Вчера в 13:25
  • Вакансия аналитика 1с УТ от 200K, гибрид от Татьяна Астахова
    25 января 2024 г.
  • Вакансия Программист 1С (Москва, гибрид) 250-300т.р. от paulaja03@gmail.com
    23 января 2024 г.

Добавление отчета Движения документа в новый документ

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

Движение документа

Для добавления этих отчетов необходимо выполнить ряд условий. Можно открыть какой-нибудь документ в конфигураторе и копировать данные от него.

Первоначально необходимо создать области на форме документа. Их можно скопировать от другого документа.

Движения документа

Важно! В свойствах Источник команд скопированных групп может прописаться Форма, необходимо очистить это поле, чтобы было как на скриншоте.

Движения документа

После этого переходим к написанию кода. В модуле формы в обработчике ПриСозданииНаСервере прописываем строку:

ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);

В модуле формы добавляем следующие процедуры:

// СтандартныеПодсистемы.ПодключаемыеКоманды &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект); КонецПроцедуры &НаСервере Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ОбновитьКоманды() ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); КонецПроцедуры // Конец СтандартныеПодсистемы.ПодключаемыеКоманды

В модуле менеджера документа добавляем процедуру:

Процедура ДобавитьКомандыОтчетов(КомандыОтчетов) Экспорт ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуСтруктураПодчиненности(КомандыОтчетов); ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуДвиженияДокумента(КомандыОтчетов); КонецПроцедуры

После этого в нашем документе должно появиться меню с отчетами.

Как Получить, Прочитать, Изменить Движения документа по регистру?

В запросе выбираем все поля (кроме виртуальных) из таблицы регистра РегистрНакопления.ОстаткиНоменклатуры с отбором по регистратору. Значением параметра Регистратор нужно будет установить ссылку на документ.

Если же нужно чтение с последующей модификацией движений, следует воспользоваться объектной моделью представления информации: в свойстве Движения объекта документа обратиться к нужному регистру (в нашем случае это регистр ОстаткиНоменклатуры) и прочитать набор записей регистра.
Код 1C v 8.х

 // Чтение движений документа 
НаборЗаписейРегистра = Движения.ОстаткиНоменклатуры;

НаборЗаписейРегистра.Прочитать();

Для Каждого Запись из НаборЗаписейРегистра Цикл

// Чтение и модификация очередного движения.

КонецЦикла;

Если требуется изменить движения документа по всем регистрам, нужно обойти фиксированную коллекцию, содержащуюся в свойстве Движения:
Код 1C v 8.х

Аренда 1С в облаке

 // Изменение движений документа 
Для Каждого НаборЗаписейРегистра из Движения Цикл
НаборЗаписейРегистра.Прочитать();

Для Каждого Запись из НаборЗаписейРегистра Цикл

// Чтение и модификация очередного движения.

КонецЦикла;

КонецЦикла;

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *