Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: КвоПроводок
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
Vofka
УТП 1.1.8.3 (думаю, что в подойдет и бухгалтерия)

В модуле набора записей регистра бухгалтерии Хозрасчетный есть процедура:

Процедура ВыполнитьДействияПередЗаписьюДвижений() Экспорт

    КвоПроводок    = ЭтотОбъект.Количество();
    КвоДобавленных = 0;
    
    Если КвоПроводок = 0 Тогда
        Возврат;
    КонецЕсли;
    
    ОбработатьПроводкиПерезачетВнутриСчета();
    КвоПроводок    = ЭтотОбъект.Количество();
    
    СтруктураПараметров = Новый Структура;
    
    Для К = 1 По КвоПроводок Цикл
        
        Индекс = К - 1 + КвоДобавленных;
        Проводка = ЭтотОбъект[Индекс];
        
        Если ПровестиПоЗатратам(Проводка, Индекс, СтруктураПараметров) Тогда
            КвоДобавленных = КвоДобавленных + 1;
        КонецЕсли;
        
    КонецЦикла;
    
    мДействияПередЗаписьюВыполнены = Истина;

КонецПроцедуры


Первая строчка
КвоПроводок    = ЭтотОбъект.Количество();
возвращает число проводок. Откуда это число берется?
World1С
Из свойства объекта.
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>)
Количество (Count)
Синтаксис:
Количество()
Возвращаемое значение:
Тип: Число.
Описание:
Получает количество записей в наборе.
Пример:
Сообщить("Записей в наборе - " ) + НаборЗаписей.Количество());
Vofka
Цитата
Из свойства объекта.

А как/где это свойство устанавливается? И откуда берется этот набор записей?
World1С
КвоПроводок = ЭтотОбъект.Количество();
устанавливается здесь

ЭтотОбъект
берется от сюда.
Vofka
ЭтотОбъект - это набор записей регистра? Как он появляется?
Т.е. в моем случае ЭтотОбъект.Количество() = 4. Почему не 5, 9, 120 ?
World1С
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>)
ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: РегистрБухгалтерииНаборЗаписей. Ссылка на сам набор записей. Предназначено для получения набора в модуле набора записей


Это свойство, оно есть почти у каждого объекта.

Посмотри журнал проводок относительно регистратора который делает движения.
Vofka
Цитата
Посмотри журнал проводок относительно регистратора который делает движения.

Так то-то и оно, я ввожу новый документ, у которого ещё проводок нет, который ещё даже в базе не записан
World1С
А вообще количество строк в журнале какое?
Vofka
Цитата
А вообще количество строк в журнале какое?

0. Это ж новый документ.
ЗЫ. или я чего-то не доганяю
World1С
А конфигурация сильно большая, скинуть сможешь. Только желательно с документом
Creaturka
так все вроде сходится: обратите внимание на то, что процедура возникает именно перед записью в регистр, но после обработки проведения документа, вот и получается, что у документа движений еще 0, но идет попытка добавить 4. нюанс в том, что новый документ на момент вызова этой процедуры в базу уже записан (с возможностью отката транзакции) и проведен, а его движения - еще нет, т.е., он уже не новый. а почему именно такое количество проводок - потому что в обработке проведения документ добавил именно столько.
зы. это все для случаев, когда документ работает с регистром через обработку проведения, но могут быть и вариации на тему
Vofka
Цитата
А конфигурация сильно большая, скинуть сможешь. Только желательно с документом

Да это УТП типовая.

Creaturka, а где формируются непосредственно сами движения?
Fynjy
Документ новый
Записуется.
Проводиться (формируются движения, но они еще не записаны) ОбработкаПроведения()
Наступает долгожданный момент - срабатывают события регистров ... Например ПередЗаписьюДвижений() ...
Vofka
Немного прояснилось. Буду дальше копать (хочу разобраться)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.