ТиС 7.7. Помогите сделать кнопку "Заполнить" в док Продажа собственной фирме.

Новая тема
"Товарищи 1с-ники, помогите доделать процедуру заполнения табличной части. документ Продажа собственной фирме (в конфигураторе Быстрая продажа).
Я сделал запрос по регистру остатки ТМЦ, получаю в итоге номенклатуру и количество. Могу передать их в табличную часть. А как сделать чтобы остальные поля табличной части заполнялись/рассчитывались?  Чувствую, что где-то рядом ответ, а не получается.  Уже комп выкинуть хочется.  
Вот что сделано:

Процедура ЗаполнитьПоОстаткам()
//проверки
Если  Форма.Параметр <> "Перемещение" Тогда      
Предупреждение("Только для внутрифирменных продаж");
Возврат;
ИначеЕсли КоличествоСтрок() <> 0 Тогда
Если Вопрос("Заполнить по отрицательным остаткам склада покупателя (перед заполнением табличная часть будет очищена)?", "Да+Нет", 60) <> "Да" Тогда
Возврат;
КонецЕсли;
Сообщить("заполняю");  
УдалитьСтроки();
КонецЕсли;
\\конец проверок

ТекстЗапросаОстатков="
|ФирмаПокупат = Регистр.ОстаткиТМЦ.Фирма;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|СкладПокупат = Регистр.ОстаткиТМЦ.Склад;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура без групп;
|Условие(ФирмаПокупат=ФирмаПокупателя);
|Условие(СкладПокупат=СкладПокупателя);";

ЗапросПоОстаткам = СоздатьОбъект("Запрос");
Если ЗапросПоОстаткам.Выполнить(ТекстЗапросаОстатков) = 0 Тогда
Возврат;
КонецЕсли;
флаг=0;  // для отслеживания того что отбор был

Список =СоздатьОбъект("СписокЗначений");  // думаю пригодится.

Пока ЗапросПоОстаткам.Группировка(1) = 1 Цикл  
Если ЗапросПоОстаткам.КоличествоКонОст < 0 Тогда //нам нужны отрицательные остатки
флаг=1;
НоваяСтрока();              
Номенклатура=ЗапросПоОстаткам.Номенклатура;    // поле таб части
КоличествоОст=ЗапросПоОстаткам.КоличествоКонОст-ЗапросПоОстаткам.КоличествоКонОст*2; //остатки со знаком - надо +
Количество=КоличествоОст;    //поле таб части
Единица = ЗапросПоОстаткам.Номенклатура.ОсновнаяЕдиница;   //вроде бы правильно ?
Коэффициент= ЗапросПоОстаткам.Номенклатура.ОсновнаяЕдиница.Коэффициент;      // не уверен что во всех случаях так.

Список.ДобавитьЗначение(Номенклатура);                 //заполняем список значений но он,  
СписокНоменклатуры.ДобавитьЗначение(Количество);       //почему то не заполняется

Сообщить(ЗапросПоОстаткам.Номенклатура);     // проверял: запрос отрабатывается четко.
Сообщить(КоличествоОст);

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

Если флаг=0 Тогда
Сообщить("У организации " + ФирмаПокупателя + " по складу " + СкладПокупателя + " не найдено отрицательных остатков");
Возврат;
КонецЕсли;

КонецПроцедуры


подскажите как по уму сделать?  через отладчик смотрел как что считает все равно не соображу как сделать, там наворочено куча всего."
"в общем цикл делаем таким и все работает.

Пока ЗапросПоОстаткам.Группировка(1) = 1 Цикл
Если ЗапросПоОстаткам.КоличествоКонОст < 0 Тогда //нам нужны отрицательные остатки
флаг=1;
НоваяСтрока();
Номенклатура=ЗапросПоОстаткам.Номенклатура;
Количество=-ЗапросПоОстаткам.КоличествоКонОст;
глПерсчетТаблЧасти(Контекст,"Номенклатура");
глПерсчетТаблЧасти(Контекст,"Количество");
КонецЕсли;
КонецЦикла;"
Читают тему
(гостей: 1)

Быстрый переход