8.х Выгрузка последней строки из ТЧ.

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

  1. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Здравствуйте,

    Понимаю,что это как-то легко сделать,но не получается,подскажите кодом.

    Надо из ТЧ скопировать последнию строчку и присвоить ее реквизиту.

    Пишу:
    ////
    НомерстрокиТч = ЭтотОбъект.ТЧ.Количество();
    послстр=ТЧ.Выгрузить(НомерстрокиТч,"Колонка1");
    ////
    Понимаю,что НомерстрокиТч должен быть массивом,но как выгрузить имено последнюю одну строчку из определенной колонки.
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не проверял.
    Если так:
    Код:
    послстр = ТЧ.Выгрузить(,"Колонка1")[ЭтотОбъект.ТЧ.Количество()-1];
    
    
    или
    Код:
    послстр = ТЧ.Выгрузить().ВыгрузитьКолонку("Колонка1")[ЭтотОбъект.ТЧ.Количество()-1];
    
    
    ?
  3. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    а вы уверены что в объекте что-то есть? процедура где находится и какая стоит задача?
  4. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Если это мне - то нет не уверен.. :) Я даже не знаю что это за объект.. :)

    Ну а по поводу Если ЭтотОбъект.ТЧ.Количество() > 0 автор уж сам допилит,я думаю.

    А можно конечно еще и запросом вытянуть - но тут: какой был вопрос-такой и ответ. :unsure:
  5. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    нет не допилит - обычно новички не видят разницы между тем что в базе и тем что на форме. и если вы откроете новый документ и покнопке будете выполнять строки коды приведеные выше, то ничего не получите.
    зы запросом тоже
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Запросом если это новый документ - согласен.

    Единственное что там наверно будет на выходе "СтрокаТаблицыЗначений", из нее значение надо взять еще.

    Эм, а почему еще не получим?
  7. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    в каком выходе ?
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    ТЧ.Выгрузить(,"Колонка1")[ЭтотОбъект.ТЧ.Количество()-1]
    
    здесь
  9. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    каков будет результат этого в новом документе ? если у вас есть вопросы стоит создать новую тему, давайте актентируем внимание на просьбу автора
    Код:
    ЭтотОбъект.ТЧ.Количество()-1
    
  10. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А, вы об этом. Я думал мы это уже обговорили выше.
    Код:
    КоличествоСтрок = ЭтотОбъект.ТЧ.Количество();
    Если КоличествоСтрок > 0 Тогда
    МойРеквизит = ЭтотОбъект.ТЧ.Выгрузить(,"Колонка1")[КоличествоСтрок-1].Колонка1;
    КонецЕсли;
    
    
    
    Так ок?
  11. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    смотрите :)

    Вложения:

    • sshot_1.png
      sshot_1.png
      Размер файла:
      28,7 КБ
      Просмотров:
      33
  12. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Эммм. У вас там "Колонка", а в коде "Колонка1", учли?

    Только что специально вставил и проверил:
    Код:
    Процедура КоманднаяПанельТоварыДействие1(Кнопка)
    КоличествоСтрок = ЭтотОбъект.Товары.Количество();
    Если КоличествоСтрок > 0 Тогда
    МойРеквизит = ЭтотОбъект.Товары.Выгрузить(,"Номенклатура")[КоличествоСтрок-1].Номенклатура;
    КонецЕсли;
    Сообщить(МойРеквизит);
    КонецПроцедуры
    
    
    работает!
  13. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    промазал :) бывает
  14. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    :unsure:
    Автор, забирайте код. (можете конечно при этом озвучить полное задание, как просили, мб вам что-то более правильное посоветуют)
  15. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Всем спасибо,
    Решил по своему,без .Выгрузить :

    НомерстрокиТч = ЭтотОбъект.ТЧ.Количество();
    массив = ТЧ.ВыгрузитьКолонку("Колонка");
    Пока к <> НомерстрокиТч цикл
    к=к+1;
    КонецЦикла;
    реквизит=массив[к-1];
  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.573
    Симпатии:
    717
    Баллы:
    204
    кхм.....а если строк в ТЧ будет много?
    уже же сказали, что будет быстрее
    ПоследняяСтрокаТЧ = ЭтотОбъект.ТЧ[ЭтотОбъект.ТЧ.Количество()-1]
    зачем городить огород с циклом?

    Даже ЭтотОбъект можно не использовать, т.к. в модуле объекта находимся, судя по коду.

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