В СКД в вычисляемое поле СрокПоставки нужно вытянуть из общего функции общего модуля параметр собственно Поставки.
Функция имеет вид

```1c
    Функция ОбновитьСрокиПоставки(ДокументЗаказ,Фирма_СброситьОтпустить = Ложь) Экспорт

    ПустаяДата = Дата(0001,01,01);
    Результат = ПолучитьДанныеДляОбновленияСроковПоставки(ДокументЗаказ,ПустаяДата);

    Отбор = Новый Структура("Номенклатура,КодСтроки");
    СтруктураПоискаНоменклатура = Новый Структура("Номенклатура");
    НеОтгружатьЧастям = ДокументЗаказ.НеОтгружатьЧастями;
    ДатаОтгрузкиДокумента = ДокументЗаказ.ДатаОтгрузки;
    мТовары = ДокументЗаказ.Товары.Выгрузить();
    мТовары.КОлонки.Добавить("Фирма_Особое");
    мТовары.КОлонки.Добавить("Фирма_Заморозка");
    мТовары.КОлонки.Добавить("Фирма_Распродажа");
    мТовары.КОлонки.Добавить("Фирма_Акция");
    мТовары.КОлонки.Добавить("Фирма_Тендер");

    мТовары.КОлонки.Добавить("Обработана", Новый ОписаниеТипов("Булево"));
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | Номенклатура.Ссылка
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Ссылка В(&МассивНоменклатуры)
    | И Номенклатура.Фирма_Услуга = ИСТИНА";
    Запрос.УстановитьПараметр("МассивНоменклатуры", мТовары.ВыгрузитьКолонку("Номенклатура"));
    РезультатЗапроса = Запрос.Выполнить();
    ТаблицаУслуг = РезультатЗапроса.Выгрузить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    МассивСрокУслуг = мТовары.НайтиСтроки(Новый Структура("Номенклатура", ВыборкаДетальныеЗаписи.Ссылка));
    Для Каждого ЭлементМассива из МассивСрокУслуг Цикл
    ЭлементМассива.Фирма_Отпустить = ЭлементМассива.Количество;
    ЭлементМассива.Обработана = Истина;
    КонецЦикла;
    КонецЦикла;

    Для каждого СтрокаТовара Из мТовары Цикл

    Если СтрокаТовара.Обработана Тогда
    Продолжить;
    КонецЕсли;

    СтрокаТовара.Фирма_Поставка = ";
    СтрокаТовара.ДатаОтгрузки = ?(НеОтгружатьЧастям,ДатаОтгрузкиДокумента,Неопределено);
    СтрокаТовара.Фирма_Отпустить = 0;

    Отбор.Номенклатура = СтрокаТовара.Номенклатура;
    Отбор.КодСтроки = СтрокаТовара.КодСтроки;
    НайденныеСтроки = Результат.НайтиСтроки(Отбор);
    СтруктураПоискаНоменклатура.Номенклатура = СтрокаТовара.Номенклатура;

    Если Не НайденныеСтроки.Количество() = 0 Тогда

    СтрокаНом = НайденныеСтроки[0];

    ЗаполнитьЗначенияСвойств(СтрокаТовара,СтрокаНом,"Фирма_Особое,Фирма_Заморозка,Фирма_Распродажа,Фирма_Акция,Фирма_Тендер,Склад");
    Если Фирма_СброситьОтпустить Тогда
    СтрокаТовара.Фирма_Отпустить = мин(СтрокаНом.Отгружено,СтрокаТовара.Количество);
    Иначе
    ДанныеРезерва = ?(СтрокаНом.Тендер,СтрокаНом.РезервТендер,СтрокаНом.РезервУпр);
    СтрокаТовара.Фирма_Отпустить = мин(СтрокаНом.Отгружено + ?(ДанныеРезерва<0,0,ДанныеРезерва),СтрокаТовара.Количество);
    КонецЕсли;

    СтрокаТовара.Фирма_ВРезерве = СтрокаНом.РезервУпр;

    Отгружено = ?(НЕ СтрокаНом.Отгружено = Null,СтрокаНом.Отгружено,0);
    ОсталосьОтгрузить = ?(НЕ СтрокаНом.ОсталосьОтгрузить = Null,СтрокаНом.ОсталосьОтгрузить,0);
    Заказано = ?(НЕ СтрокаНом.Заказано = Null,СтрокаНом.Заказано,0);
    Резерв = ?(НЕ СтрокаНом.РезервУпр = Null,СтрокаНом.РезервУпр,0);
    РезервТендер = ?(НЕ СтрокаНом.РезервТендер = Null,СтрокаНом.РезервТендер,0);
    СвободныйОстаток = ?(НЕ СтрокаНом.СвободныйОстаток = Null,СтрокаНом.СвободныйОстаток,0);
    ДатаОтгрузки = ?(НеОтгружатьЧастям,ДатаОтгрузкиДокумента,ТекущаяДата());
    ИдетПриемка = ?(Не СтрокаНом.ИдетПриемка = NULL,СтрокаНом.ИдетПриемка,0);
    СтрокаТовара.ДатаОтгрузки = ДатаОтгрузки;

    мРезерв = 0;
    мРезервТендер = 0;
    мСвободныйОстаток = 0;

    Если ОсталосьОтгрузить = 0 Тогда

    Если ДокументЗаказ.Проведен тогда
    СтрокаТовара.Фирма_Поставка = "Всё отгружено";
    Иначе
    СтрокаТовара.Фирма_Поставка = ";
    КонецЕсли;

    Иначе

    СтрокаТовара.Фирма_Поставка = ";

    Если ОсталосьОтгрузить <= Резерв Тогда
    мРезерв = Мин(Резерв,ОсталосьОтгрузить);
    СтрокаТовара.Фирма_Поставка = "Всё в резерве";
    Если СтрокаНом.Тендер Тогда

    мРезервТендер = Мин(РезервТендер,ОсталосьОтгрузить);
    Если ОсталосьОтгрузить <= РезервТендер Тогда
    СтрокаТовара.Фирма_Поставка = "Всё в резерве/Всё в резерве";
    Иначе
    СтрокаТовара.Фирма_Поставка = "Всё в резерве/" + мРезервТендер;
    КонецЕсли;

    КонецЕсли;
    Иначе

    Если СвободныйОстаток >= ОсталосьОтгрузить - Резерв Тогда
    СтрокаТовара.Фирма_Поставка = "Все в наличии";
    мСвободныйОстаток = ОсталосьОтгрузить - Резерв;
    ИначеЕсли СвободныйОстаток > 0 Тогда
    СтрокаТовара.Фирма_Поставка = "В наличии: " + СвободныйОстаток;
    мСвободныйОстаток = СвободныйОстаток;
    КонецЕсли;

    ВремСтрока = ";
    Если (СтрокаНом.Тендер = Истина) И ЗначениеЗаполнено(СтрокаТовара.Фирма_ВипСчет) Тогда
    ВремСтрока = "Поставка " + ?(Не СтрокаНом.ДатаПоступления = ПустаяДата,Лев(СтрокаНом.ВипСчет_ДатаОтгрузки,10),"?");
    ИначеЕсли Заказано <> 0 Тогда
    ВремСтрока = "Поставка " + ?(Не СтрокаНом.ДатаПоступления = ПустаяДата,Лев(СтрокаНом.ДатаПоступления,10),"?");
    КонецЕсли;
    ИнициализироватьСтрокуДанными(СтрокаТовара.Фирма_Поставка,ВремСтрока);

    ВремСтрока = ";
    Если ОсталосьОтгрузить > СвободныйОстаток + Резерв + Заказано Тогда
    ВремСтрока = СрокПоставкиНоменклатуры(СтрокаНом);
    КонецЕсли;
    ИнициализироватьСтрокуДанными(СтрокаТовара.Фирма_Поставка,ВремСтрока);

    ВремСтрока = ";
    Если Резерв <> 0 Тогда
    мРезерв = Мин(Резерв,ОсталосьОтгрузить);
    мРезервТендер = Мин(РезервТендер,ОсталосьОтгрузить);
    ВремСтрока = "В резерве: " + мРезерв + ?(СтрокаНом.Тендер,"/" + мРезервТендер,");
    КонецЕсли;
    ИнициализироватьСтрокуДанными(СтрокаТовара.Фирма_Поставка,ВремСтрока);
    КонецЕсли;

    ВремСтрока = ";
    Если Отгружено <> 0 Тогда
    ВремСтрока = "Отгружено: " + Отгружено;
    КонецЕсли;
    ИнициализироватьСтрокуДанными(СтрокаТовара.Фирма_Поставка,ВремСтрока);

    КонецЕсли;

    СтрокаНом.РезервУпр = СтрокаНом.РезервУпр - мРезерв;
    СтрокаНом.РезервТендер = СтрокаНом.РезервТендер - мРезервТендер;
    СтрокаНом.СвободныйОстаток = СтрокаНом.СвободныйОстаток - мСвободныйОстаток;

    мНайденныеСтроки = Результат.НайтиСтроки(СтруктураПоискаНоменклатура);
    Если мНайденныеСтроки.Количество() > 1 Тогда
    Для каждого мСтрокаНом Из мНайденныеСтроки Цикл

    мСтрокаНом.РезервУпр = СтрокаНом.РезервУпр;
    мСтрокаНом.РезервТендер = СтрокаНом.РезервТендер;
    мСтрокаНом.СвободныйОстаток = СтрокаНом.СвободныйОстаток;

    КонецЦикла;
    КонецЕсли;

    КонецЕсли;

    КонецЦикла;

    #КонецОбласти

    Возврат ПоместитьВоВременноеХранилище(мТовары);

    КонецФункции
```

Так как работа с хранилищем, создал ниже свою функцию, которая вытягивает из выше указанной "предполагаемый" параметр Фирма_Поставка

```1c
    Функция ОпределитьСрокПоставки(ДокументЗаказ, КодСтроки) Экспорт

    ТаблицаСрокПоставки = ПолучитьИзВременногоХранилища(ОбновитьСрокиПоставки(ДокументЗаказ));

    Отбор = Новый Структура("КодСтроки", КодСтроки);

    Итог = ТаблицаСрокПоставки.НайтиСтроки(Отбор);

    Возврат Итог.СтрокаТовара.Фирма_Поставка;

    КонецФункции
```

В вычисляемое поле Добавил поле
СрокПоставки (он же и в макете СКД)
сама функция
Фирма_Общий.ОбновитьСрокиПоставки(ЗаказКлиента,КодСтроки)

При выполнении запуска вн. отчета получаю "Поле обьекта на обнаружено "СтрокаТовара"

Как определить правильно такую функцию?
Много перепробовал. Отладка по функциям этого общего модуля не проходит.
Тут идея вытянуть для параметра в СКД именно эти значения "Всё отгружено", "Все в наличии"....
---
```1c
    Функция ОпределитьСрокПоставки(ДокументЗаказ, КодСтроки) Экспорт

    ТаблицаСрокПоставки = ПолучитьИзВременногоХранилища(ОбновитьСрокиПоставки(ДокументЗаказ));

    СтрокаТовара = ТаблицаСрокПоставки.Найти(КодСтроки, "КодСтроки");

    Возврат ?(СтрокаТовара <> Неопределено, СтрокаТовара.Фирма_Поставка, ");

    КонецФункции
```
---
В том случае если вы точно уверены что в результате НайтиСтроки всегда будет одна запись то можно так написать:

```1c
    Итог = ТаблицаСрокПоставки.НайтиСтроки(Отбор);
    Возврат Итог[0].СтрокаТовара.Фирма_Поставка;
```
---
Предположительно в ИТОГ попадает массив значений.
---
```1c
    Функция ОпределитьСрокПоставки(ДокументЗаказ, КодСтроки) Экспорт

    ТаблицаСрокПоставки = ПолучитьИзВременногоХранилища(ОбновитьСрокиПоставки(ДокументЗаказ));

    СтрокаТовара = ТаблицаСрокПоставки.Найти(КодСтроки, "КодСтроки");

    Возврат ?(СтрокаТовара <> Неопределено, СтрокаТовара.Фирма_Поставка, ");

    КонецФункции
```
---
Вот этот год возращает не итог значений а массив значений

```1c
    Функция ОпределитьСрокПоставки(ДокументЗаказ, КодСтроки) Экспорт

    ТаблицаСрокПоставки = ПолучитьИзВременногоХранилища(ОбновитьСрокиПоставки(ДокументЗаказ));

    Отбор = Новый Структура("КодСтроки", КодСтроки);

    Итог = ТаблицаСрокПоставки.НайтиСтроки(Отбор);

    Возврат Итог.СтрокаТовара.Фирма_Поставка;

    КонецФункции
```
---
Вам эту функцию нужно переписать. Например так:

Функция ОпределитьСрокПоставки(ДокументЗаказ, КодСтроки) Экспорт

    ТаблицаСрокПоставки = ПолучитьИзВременногоХранилища(ОбновитьСрокиПоставки(ДокументЗаказ));

    Отбор = Новый Структура("КодСтроки", КодСтроки);

        Итог = ТаблицаСрокПоставки.НайтиСтроки(Отбор);
        ФирмаПоставка = "";
        Для Каждого СтрокаИтог Из Итог Цикл
              Если ЗначениеЗаполнено(ФирмаПоставки) Тогда
                  ФирмаПоставки = ФирмаПоставки + ", " + СтрокаИтог.Фирма_Поставка
              Иначе
                   ФирмаПоставки = СтрокаИтог.Фирма_Поставка;
        Конеццикла

         Возврат ФирмаПоставка;

КонецФункции
---
В том случае если вы точно уверены что в результате НайтиСтроки всегда будет одна запись то можно так написать:

```1c
    Итог = ТаблицаСрокПоставки.НайтиСтроки(Отбор);
    Возврат Итог[0].СтрокаТовара.Фирма_Поставка;
```
---
вот так правильней.
Итог = ТаблицаСрокПоставки.НайтиСтроки(Отбор);
Возврат Итог[0].Фирма_Поставка;
---
тут кстати понял ваш вопрос.
записей по идее несколько.
потому если вдруг Итог[1].Фирма_Поставка - индекс находится за пределами массива (просто увеличил диапазон периода)