Вот:
//Это При Открвтии
Каталог = КаталогИБ() + "Mail\Zakaz\";
ИмяФайлаСокр = Каталог + СокрЛП(текДок.НомерДок) + ".dbf";
текДок.ВыгрузитьТабличнуюЧасть(тзТабл, "Товар, Заказано, ПроизводительСтр, ПоставщикСтр");
текДок.ВыгрузитьТабличнуюЧасть(тзПоставщик, "Товар, Заказано, ПроизводительСтр, ПоставщикСтр");
тзТабл.Сортировать("ПоставщикСтр, Товар");
тзПоставщик.Сортировать("ПоставщикСтр, Товар");
тзПоставщик.Свернуть("ПоставщикСтр",);
тзПоставщик.ВыбратьСтроки();
Пока тзПоставщик.ПолучитьСтроку() = 1 Цикл
сзПоставщики.ДобавитьЗначение(тзПоставщик.ПоставщикСтр); // на форме
КонецЦикла;
// А это Сформировать
дбФайл = СоздатьОбъект("XBase");
дбФайл.ДобавитьПоле("Tovar", "S", 64,);
дбФайл.ДобавитьПоле("Proiz", "S", 64,);
дбФайл.ДобавитьПоле("Zakaz", "N", 12, 3);
дбФайл.КодоваяСтраница(0);
кнУдалитьНеВыбранные (); // удаляет на форме не помеченных поставщиков
дбФайл.СоздатьФайл (ИмяФайлаСокр);
тзТабл.ВыбратьСтроки();
сзРазмер = сзПоставщики.РазмерСписка();
КолЗап = 0;
Для Ин = 1 По сзРазмер Цикл
Поставщик = сзПоставщики.ПолучитьЗначение(Ин);
тзТабл.ВыбратьСтроки();
Пока тзТабл.ПолучитьСтроку() = 1 Цикл
Если тзТабл.ПоставщикСтр <>Поставщик Тогда
Продолжить;
Иначе
дбФайл.Добавить();
дбФайл.Tovar = СокрЛП(тзТабл.Товар.Наименование);
дбФайл.Proiz = СокрЛП(тзТабл.ПроизводительСтр);
дбФайл.Zakaz = тзТабл.Заказано;
дбФайл.Записать();
КолЗап = КолЗап + 1;
Состояние (тзТабл.Товар.Наименование);
КонецЕсли;
КонецЦикла;
дбФайл.ЗакрытьФайл();
Если СтрДлина(СокрЛП(текДок.Поставщик.Наименование)) <= 25 Тогда
ИмяФайла = Каталог + СокрЛП(текДок.НомерДок) + "_" + СокрЛП(Поставщик.Наименование) + ".dbf";
Иначе
ИмяФайла = Каталог + СокрЛП(текДок.НомерДок) + "_" + СокрЛП(Лев(Поставщик.Наименование, 25)) + ".dbf";
КонецЕсли;
ИмяФайла = СокрЛП(СтрЗаменить(ИмяФайла, "*", " "));
ФС.КопироватьФайл(ИмяФайлаСокр, ИмяФайла, 0);
дбФайл.ОткрытьФайл(ИмяФайлаСокр,,0);
дбФайл.ОчиститьФайл();
КонецЦикла;
дбФайл.ЗакрытьФайл();
ФС.УдалитьФайл(ИмяФайлаСокр);
дбФайл = 0;
Сообщить ("Выгружено " + КолЗап + " записей");
Форма.Закрыть();