7.7 Циклы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Dmitrij, 27 май 2009.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите, у меня есть таблица значений в ней есть разные даты разбить эту ТЗ на несколько так чтобы в каждой была одинаковая дата :unsure:
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну так в чем сложность?
    Делаем один цикл, в котором пробегаем всю таблицу.
    Имеем некое сответствие, в котором храним дату и ТЗ для нее.
    Проверяем дату, если она есть в соответствии -> получаем тз и пихаем туда строку, нету - создаем новую ТЗ и пихаем строку туда, пи этом записывая данные о соответствии даты и ТЗ в то самое соответствие :)
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Не много не то что нужно. Расскажу что нужно, у меня есть несколько txt файлов в которых хранится дата
    я загружаю каждый файл в документ выписка, проблема в том что у этих файлов могут быть разные даты, а в выписку должны попадать документы от одной даты, те если в 1 файле дата 16.02.09 во 2 18.02.09 в 3 16.02.09 тогда 1 и 3 файлы должны загрузится в один документ, а 2 в другой. Файлов может быть неограниченное количество. Я их загнал в ТЗ, а из нее что то не могу отсортировать
  4. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Вот что-то такое, но лучше не использовать список значений, а сразу создавать документы.
    Код:
    //функция возвращает список значений, элементами которого являются ТЗ с уникальными датами
    Функция РазбитьТЗПоДатам(ТЗ)
    СписокДокументов = СоздатьОбъект("СписокЗначений"); //список значений в котором будут ТЗ с уникальными датами
    СтрокиДокумента = СоздатьОбъект("ТаблицаЗначений"); 
    //здесь установить структуру таблицы СтрокиДокумента такой же как и у ТЗ с которой загружаем
    ТЗ.Сортировать("ДатаДокумента");
    СтарДата = -1;
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл 
    НомерСтроки = ТЗ.НомерСтроки();
    Если СтарДата <> ТЗ.ДатаДокумента Тогда
    СтарДата = ТЗ.ДатаДокумента;
    Если СтрокиДокумента.КоличествоСтрок() <> 0 Тогда
    СписокДокументов.ДобавитьЗначение(ТЗ,СтарДата); 
    СтрокиДокумента.УдалитьСтроки();
    КонецЕсли;   
    КонецЕсли;  
    СтрокиДокумента.НоваяСтрока();
    Для н = 1 По ТЗ.КоличествоКолонок() Цикл
    СтрокиДокументов.УстановитьЗначение(НомерСтроки, н, ТЗ.ПолучитьЗначение(НомерСтроки,н));
    КонецЕсли;
    КонецЦикла;
    Если СтрокиДокумента.КоличествоСтрок() <> 0 Тогда
    СписокДокументов.ДобавитьЗначение(ТЗ,СтарДата); 
    КонецЕсли;
    Возврат СписокДокументов;
    КонецЕсли;
    
    

Поделиться этой страницей