|   |   | 
| 
 | Что вы думаете по поводу процедуры из типовых | ☑ | ||
|---|---|---|---|---|
| 0
    
        Fragster гуру 12.07.11✎ 16:09 | 
        Процедура ВыполнитьДвижениеПоРегистру(НаборДвижений, ВидДвижения = Неопределено,
  ПустыеКолонкиСоставногоТипа = Неопределено) Экспорт Какова цель? почему именно так сделано (обход по колонкам, потом внутри по строкам)? | |||
| 1
    
        wladimir90 12.07.11✎ 16:12 | 
        Подробней пожалуйста.     | |||
| 2
    
        Ненавижу 1С гуру 12.07.11✎ 16:12 | 
        универсальность типо     | |||
| 3
    
        Fragster гуру 12.07.11✎ 16:13 | 
        (2) что ж так через анус?     | |||
| 4
    
        Лефмихалыч 12.07.11✎ 16:13 | 
        (0) пользуюсь с удовольствием     | |||
| 5
    
        ice777 12.07.11✎ 16:13 | 
        (0) нет у тебя в коде ни колонок ни строк )     | |||
| 6
    
        Лефмихалыч 12.07.11✎ 16:13 | 
        +(4) зело удобно в купе с туповой же ЗагрузитьВТаблицуЗначений()     | |||
| 7
    
        Fragster гуру 12.07.11✎ 16:13 | 
        // Откопируем остальные колонки (структура таблиц совпадает).
  ПерваяКолонка = Истина; МассивСтрок = Новый Массив(ТаблицаДвижений.Количество()); Для каждого Колонка Из ТаблицаДвижений.Колонки Цикл ИмяКолонки = Колонка.Имя; Если ИмяКолонки <> "Период" И ИмяКолонки <> "Активность" И ИмяКолонки <> "НомерСтроки" И ИмяКолонки <> "" И ИмяКолонки <> "ВидДвижения" И ИмяКолонки <> "МоментВремени" Тогда Если ИзмеренияСостТипа.Свойство(ИмяКолонки) Тогда ФлагКолонкиСостТипа = Истина; Иначе ФлагКолонкиСостТипа = Ложь; КонецЕсли; Индекс = 0; Для каждого СтрокаТаблицы Из ТаблицаДвижений Цикл Если ПерваяКолонка Тогда Если ВидДвижения = ВидДвиженияНакопления.Приход Тогда СтрокаДвижения = НаборДвижений.ДобавитьПриход(); ИначеЕсли ВидДвижения = ВидДвиженияНакопления.Расход Тогда СтрокаДвижения = НаборДвижений.ДобавитьРасход(); Иначе СтрокаДвижения = НаборДвижений.Добавить(); // Для оборотных регистров КонецЕсли; МассивСтрок[Индекс] = СтрокаДвижения; СтрокаДвижения.Период = НаборДвижений.мПериод; Иначе СтрокаДвижения = МассивСтрок[Индекс]; КонецЕсли; | |||
| 8
    
        Fragster гуру 12.07.11✎ 16:14 | 
        почему не обходить сначала строки? почему не использовать "заполнитьЗначенияСвойств" (хотя бы для колонок несоставного типа)?     | |||
| 9
    
        Maxus43 12.07.11✎ 16:19 | 
        никогда не пользовался... Набор записей наше всё     | |||
| 10
    
        apokrit 12.07.11✎ 16:24 | 
        (8) Наверное, ЗаполнитьЗначенияСвойств в платформе еще не было когда этот код писали.
  В оправдание странного порядка обхода ничего не скажу. | |||
| 11
    
        ice777 12.07.11✎ 16:30 | 
        (7) тоже не нашел смысла. до обхода строк не делается ничего, определяющего дольнйшее заполнение.     | |||
| 12
    
        IamAlexy 12.07.11✎ 16:45 | 
        (0) типовую пишут люди.. простые человеческие обычне люди... 
  не БН лично.. а простые смерные.. вопрос "почему они делают так"? нужно в большинстве случаев перефразировать на "почему ОН сделал именно так?" и соответственно ответ зачастую будет "а почему бы и нет, работает же" это я к тому что не пытайтесь постичь вселенскую мудрость кода типовых.. | |||
| 13
    
        Fragster гуру 12.07.11✎ 17:20 | 
        (12) переписал сейчас (поскольку надо заполнять регистратор, а он не заполняется в этой процедуре, отдается на откуп автозаполнения). получилось почти в 2 раза меньше кода, ну и побыстрее незначительно.     | |||
| 14
    
        wladimir90 12.07.11✎ 17:32 | 
        (13) На то они и типовые что бы не заморачиваться а использовать типовые механизмы везде пусть и в ущерб скорости исполнения, зато в плюс скорости разработки.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |