7.7 Доступ в полям подчинённой таблицы

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

  1. TopicStarter Overlay
    sutni
    Offline

    sutni

    Регистрация:
    13 апр 2007
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Попросили помочь в решении одной задачки на 1С 7.7. Сам никогда на 1С не писал, поэтому вопрос опишу подробно, надеясь на детальный ответ.
    Задача такая: Есть документ Договор. В нем есть поле ВидДоговора (ссылка на справочник ВидыДоговоров). В самом справочнике ВыдыДоговоров есть подчинённая таблица УслугиПоДоговору. Эта подчинённая таблица содержит два поля Услуга (ссылка на справочник Услуги) и Количество. В справочнике Услуги отражена стоимость каждой услуги. Нужно из документа Договор подсчитать суммарную стоимость входящих в него услуг.
    Вот как бы это выглядело при использовании некого абстрактного языка:

    СтоимостьУслугВсего=0;
    Цикл п=1 по ВидДоговора.УслугиПоДоговору.Количество()
    СтоимостьУслугВсего = СтоимостьУслугВсего +
    ВидДоговора.УслугиПоДоговору[п].Количество *
    ВидДоговора.УслугиПоДоговору[п].Услуга.Стоимость;
    КонецЦикла

    Как это реализовать в 1С 7.7? Очень хочется оперативного ответа. Заранее спасибо.
  2. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Не проверял работоспособность, но получиться вроде этого:
    Код:
    СтоимостьУслугВсего=0;
    спрВидыДоговоров = СоздатьОбъект("Справочник.ВидыДоговоров");
    спрВидыДоговоров.НайтиЭлемент(ВидДоговора);
    спрУслугиПоДоговору = СоздатьОбъект("Справочник.УслугиПоДоговору");
    спрУслугиПоДоговору.ИспользоватьВладельца(спрВидыДоговоров.ТекущийЭлемент());
    спрУслугиПоДоговору.ВыбратьЭлементы();
    Пока спрУслугиПоДоговору.ПолучитьЭлемент()=1 Цикл
    СтоимостьУслугВсего = СтоимостьУслугВсего + спрУслугиПоДоговору.Количество * спрУслугиПоДоговору.Услуга.Стоимость; 
    КонецЦикла;
    

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