8.х Работа с таблицей значений

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

  1. TopicStarter Overlay
    Сандра
    Offline

    Сандра Опытный в 1С

    Регистрация:
    5 июл 2010
    Сообщения:
    76
    Симпатии:
    0
    Баллы:
    26
    Существуют 2 таблицы значений. По данным в одной таблице нужно найти данные из другой таблицы и выполнить расчет. В цикле перебираю таблицу 2 и пытаюсь найти в таблице 1 нужную строку. Поиск не срабатывает, хотя в первой таблице эти данные точно есть. Не пойму причину? Помогите, пожалуйста.


    Выборка=ТаблицаТовары1;

    Для каждого ВыборкаСтрок Из ТаблицаТовары2 Цикл

    НайденнаяСтрока=Выборка.Найти(СокрЛП(ВыборкаСтрок.Номенклатура),"Номенклатура");

    Если НайденнаяСтрока=Неопределено Тогда
    Сообщить("Материал не найден: "+ СокрЛП(ВыборкаСтрокУслуги.Номенклатура));
    Иначе
    //произвести расчет
    КонецЕсли;
  2. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Тип колонки Номенклатура Таблицы1 - СправочникСсылка.Номенклатура?

    В этом случае вот это:

    НайденнаяСтрока=Выборка.Найти(СокрЛП(ВыборкаСтрок.Номенклатура),"Номенклатура");

    НЕ сработает
  3. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Согласен с предыдущим автором...
    Если у Вас в колонке Номенклатура тип данных СправочникСсылка.Номенклатура, то вы конечно там ничего не найдете, так как ищите вы тип "строка", т.е. набор символов, а строки там нет. Там есть ссылка на элемент справочника Номенклатура.
    Вам надо искать именно элемент, т.е., допустим, так:
    Код:
    Выборка=ТаблицаТовары1;
    
    Для каждого ВыборкаСтрок Из ТаблицаТовары2 Цикл 
    
    НайденнаяСтрока=Выборка.Найти(ВыборкаСтрок.Номенклатура,"Номенклатура");
    
    Если НайденнаяСтрока=Неопределено Тогда 
    Сообщить("Материал не найден: "+ СокрЛП(ВыборкаСтрок.Номенклатура.Наименование));
    Иначе
    Сообщить("Эврика!!!!!: "+ СокрЛП(ВыборкаСтрок.Номенклатура.Наименование));
    //произвести расчет
    КонецЕсли;
    КонецЦикла;
    
  4. TopicStarter Overlay
    Сандра
    Offline

    Сандра Опытный в 1С

    Регистрация:
    5 июл 2010
    Сообщения:
    76
    Симпатии:
    0
    Баллы:
    26
    Я сначала так и написала,тоже не работает.
  5. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Сандра вы лучше полную задачу озвучьте: у вас выборка получается из запроса? если да - возможно то что вы хотите сделать - можно сделать прямо в запросе. Даже если нет - возможно ее можно передать в запрос, и выполнить действия при помощи языка запросов 1С.
  6. TopicStarter Overlay
    Сандра
    Offline

    Сандра Опытный в 1С

    Регистрация:
    5 июл 2010
    Сообщения:
    76
    Симпатии:
    0
    Баллы:
    26

    Задача: Все расходы по предприятию собираются на 44 счете по статьям затрат/без НДС/. Сумма НДС идет на 19 счет. Нужно собрать реальные расходы по поступлению материалов с учетом НДС /документ ПоступлениеТоваровИУслуг/ и распределить входящий НДС по статьям затрат 44 /документом ТребованиеНакладная материалы могут списываться на разные статьи/ счета для управленческого учета.
  7. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Сандра покажите запросы, которыми получаете ТЗ. (конфигурация у вас какая? БП?)

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