8.х Загрузка данных из табличного документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем User, 28 фев 2014.

  1. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Необходимо из табличного документа загрузить данные в ТЧ заказа покупателя. Как сделать так, чтобы в заказ покупателя выгружались не все строки табличного документа, а каждая вторая, т. е. через строку - 2, 4, 6 и т. д. Если кто-то знает, подскажите, пожалуйста.
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.987
    Симпатии:
    398
    Баллы:
    104
    Странные условия какие-то. Ну да ладно. Только писать свою обработку. Не думаю, что был еще какой то человек, которому нужно было по такому принципу загружать товар.
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну как вариант взять готовую добавить туда ваше условие. Вобщем - делать свою или допиливать готовую
  4. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    А не подскажите, как сформировать условие типа "загрузить каждый второй"?
  5. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    в ЦИКЛе с шагом 2
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    оптимально, или неоптимально - завести переменную - инкрементный счетчик и смотреть когда этот счетчик четный.... смотря какой у вас алгоритм загрузки сам по себе...
  7. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Проще циклом пока:
    Код:
    НомерСтроки = 2;
    Пока НомерСтроки <= ВысотаВашегоДокумента Цикл
    // действия
    НомерСтроки = НомерСтроки + 2;
    КонецЦикла;
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    да вариантов вагон, если много позиций, то желательно оптимальный по быстродействию вариант, если не много, то берите любой
    User нравится это.
  9. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.987
    Симпатии:
    398
    Баллы:
    104
    А зачем вообще такие условия? Почему именно каждую 2 запись? Что в ней особенного?
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Костя, а ибо нефиг много заказывать (на правах офтопа). А реально, может у него там информационные строки в табличном документе... структуру то мы не знаем, ТС виднее
  11. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Написала
    Код:
    Для Row = 1 По RowCount Цикл
            Row=Row+1;
            Для Column = 1 По ColumnCount Цикл
                ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Value;
            КонецЦикла;
           
        КонецЦикла;
    Строки вставляются через одну, но в ТЧ обработки отображаются пустые строки. Одна строка пустая, одна заполненf и т.д.
    А мне надо, чтобы из excel он брал через одну, а ТЧ обработки заполнял без пробелов.
    Извините, если сразу не понятно выразилась.
  12. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну так и пишите
    Код:
    сч = 1;
    Для Row = 1 По RowCount Цикл
           // Row=Row+1; и так итератор будет увеличен
    Если Row/2 = 0 Тогда //каждая четная строка будет взята
            Для Column = 1 По ColumnCount Цикл
                //ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Value;
      ТабличныйДокумент.Область("R" + Формат(сч, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Value;  
            КонецЦикла;
    сч= сч+1;
    конецесли;
         
        КонецЦикла;
  13. antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    ну тогда уж
    Код:
    Если Row/2 - Цел(Row/2) = 0 Тогда //каждая четная строка будет взята
    иначе Истина будет если Row=0
    User нравится это.
  14. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    пардон
    Код:
    Если Row % 2 = 0 Тогда //функция остаток от деления
    User нравится это.
  15. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Так вообще ничего не выводится, видимо потому что не выполняется условие
    Код:
    Если Row/2 = 0 Тогда
    , т. к. если условие убрать, то просто заполняется вся информация из excel в ТЧ обработки.
  16. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Классно!! Спасибо всем! Работает!

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