![]() |
![]() |
![]() |
|
Разница между ВыполнитьДвижениеПоРегистру(Движение) и Движение.Записать(Истина); | ☑ | ||
---|---|---|---|---|
0
Shur1cIT
14.01.14
✎
16:38
|
иметься процедура в глобальнике
Вытаскиваю её во внешнею обработку которая будет перезаполнять движение по определенному регистру у документа, конструкция ВыполнитьДвижениеПоРегистру(Движение) не работает поэтому предполагается использовать Движение.Записать(Истина) вопрос возник как движения будут отличаться? какие особенности в них? Процедура ЗаписатьТаблицыДокументаВРегистр(Движение, ВидДвижения, СтруктТаблицДокумента, ДатаДвижения) Экспорт Движение.мПериод = ДатаДвижения; Для Каждого ТабЧасть Из СтруктТаблицДокумента Цикл Если ТабЧасть.Значение.Количество() = 0 Тогда Продолжить; // Пропускаем пустые табличные части КонецЕсли; Движение.мТаблицаДвижений = ТабЧасть.Значение; Если ВидДвижения = Неопределено Тогда // Регистр сведений ВыполнитьДвижениеПоРегистру(Движение); Иначе // Регистр накопления ВыполнитьДвижениеПоРегистру(Движение, ВидДвижения); КонецЕсли; КонецЦикла; КонецПроцедуры // ЗаписатьТаблицыДокументаВРегистр() |
|||
1
Nenaviwu1c20
14.01.14
✎
16:40
|
Если на то пошло может и процедуру ВыполнитьДвижениеПоРегистру скопируешь с того места откуда остальное взял
|
|||
2
Nenaviwu1c20
14.01.14
✎
16:42
|
Процедура ВыполнитьДвижениеПоРегистру(НаборДвижений, ВидДвижения = Неопределено,
ПустыеКолонкиСоставногоТипа = Неопределено) Экспорт ТаблицаДвижений = НаборДвижений.мТаблицаДвижений; Если ТаблицаДвижений.Количество() = 0 Тогда Возврат; КонецЕсли; Если ПустыеКолонкиСоставногоТипа = Неопределено Тогда ПустыеКолонкиСоставногоТипа = Новый Структура; КонецЕсли; // КолонкиТаблицы = ТаблицаДвижений.Колонки; // МетаРег = НаборДвижений.Метаданные(); ИзмеренияСостТипа = Новый Структура; ИзмеренияСостТипаСтр = ""; Для Каждого МетаИзм Из МетаРег.Измерения Цикл Если (МетаИзм.Тип.Типы().Количество() > 1) И НЕ (ПустыеКолонкиСоставногоТипа.Свойство(МетаИзм.Имя)) Тогда Если не КолонкиТаблицы.Найти(МетаИзм.Имя)=Неопределено Тогда ИзмеренияСостТипа.Вставить(МетаИзм.Имя); ИзмеренияСостТипаСтр = ИзмеренияСостТипаСтр + ", " + МетаИзм.Имя; КонецЕсли; КонецЕсли; КонецЦикла; Для Каждого МетаРек Из МетаРег.Реквизиты Цикл Если (МетаРек.Тип.Типы().Количество() > 1) И НЕ (ПустыеКолонкиСоставногоТипа.Свойство(МетаРек.Имя)) Тогда Если не КолонкиТаблицы.Найти(МетаРек.Имя)=Неопределено Тогда ИзмеренияСостТипа.Вставить(МетаРек.Имя); ИзмеренияСостТипаСтр = ИзмеренияСостТипаСтр + ", " + МетаРек.Имя; КонецЕсли; КонецЕсли; КонецЦикла; Для Каждого МетаРес Из МетаРег.Ресурсы Цикл Если (МетаРес.Тип.Типы().Количество() > 1) И НЕ (ПустыеКолонкиСоставногоТипа.Свойство(МетаРес.Имя)) Тогда Если не КолонкиТаблицы.Найти(МетаРес.Имя)=Неопределено Тогда ИзмеренияСостТипа.Вставить(МетаРес.Имя); ИзмеренияСостТипаСтр = ИзмеренияСостТипаСтр + ", " + МетаРес.Имя; КонецЕсли; КонецЕсли; КонецЦикла; Если ИзмеренияСостТипаСтр <> "" Тогда ИзмеренияСостТипаСтр = Сред(ИзмеренияСостТипаСтр, 3); КонецЕсли; ТипЧисло = Тип("Число"); ТипСтрока = Тип("Строка"); ТипДата = Тип("Дата"); ЕстьПериод = НЕ ТаблицаДвижений.Колонки.Найти("Период") = Неопределено; Для Каждого СтрокаДвижения ИЗ ТаблицаДвижений Цикл Движение = НаборДвижений.Добавить(); ЗаполнитьЗначенияСвойств(Движение, СтрокаДвижения, ,ИзмеренияСостТипаСтр); Если ВидДвижения <> Неопределено Тогда Движение.ВидДвижения = ВидДвижения; КонецЕсли; Если ЕстьПериод И НЕ СтрокаДвижения.Период = '00010101000000' Тогда Движение.Период = СтрокаДвижения.Период; ИначеЕсли НаборДвижений.мПериод <> Неопределено Тогда Движение.Период = НаборДвижений.мПериод; КонецЕсли; Движение.Активность = Истина; Для Каждого КлючИЗначение ИЗ ИзмеренияСостТипа Цикл ЗначениеВКолонке = СтрокаДвижения[КлючИЗначение.Ключ]; Если ЗначениеВКолонке = Неопределено Тогда Продолжить; КонецЕсли; ТипЗначенияВКолонке = ТипЗнч(ЗначениеВКолонке); Если ТипЗначенияВКолонке = ТипЧисло Тогда Если ЗначениеВКолонке = 0 Тогда Продолжить; КонецЕсли; ИначеЕсли ТипЗначенияВКолонке = ТипСтрока Тогда Если ЗначениеВКолонке = "" Тогда Продолжить; КонецЕсли; ИначеЕсли ТипЗначенияВКолонке = ТипДата Тогда Если ЗначениеВКолонке = '00010101000000' Тогда Продолжить; КонецЕсли; ИначеЕсли ЗначениеВКолонке.Пустая() Тогда Продолжить; КонецЕсли; Движение[КлючИЗначение.Ключ] = ЗначениеВКолонке; КонецЦикла; КонецЦикла; КонецПроцедуры // ВыполнитьДвижениеПоРегистру() |
|||
3
Shur1cIT
14.01.14
✎
16:44
|
(2) точно блин! я не думал что это процедура!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |