1

Я новичок в этом, уж извините) Но пытаюсь въехать. Взял шаблон обработки для ЗУПа. Выгружаю в dbf. Не могу понять, почему не выводит список сотрудников? Документы все есть и все проведены..(

Процедура КнопкаВыполнитьНажатие(Кнопка)
ДБФ = Новый XBase;
ДБФ.Кодировка = КодировкаXBase.OEM;
ДБФ.поля.Добавить("A","S",33);
ДБФ.поля.Добавить("B","S",30);
ДБФ.поля.Добавить("C","S",30);
ДБФ.поля.Добавить("D","S",30);
ДБФ.поля.Добавить("E","S",30);
ДБФ.поля.Добавить("F","S",30);
ДБФ.поля.Добавить("G","S",30);
ДБФ.СоздатьФайл(ПутьКФайлу+"\f4683"+Строка(НомерВыгрузки)+".dbf",);

//1
ДБФ.Добавить();
ДБФ.УстановитьЗначениеПоля("A",Организация.ОсновнойБанковскийСчет.Банк); 
ДБФ.УстановитьЗначениеПоля("B",Строка(НомерПлатежногоПоручения)); 
ДБФ.УстановитьЗначениеПоля("C",перечисления.СпособыВыплатыЗарплаты.ЧерезБанк); 
ДБФ.УстановитьЗначениеПоля("D",Организация.ОГРН);
ДБФ.УстановитьЗначениеПоля("E",Организация); 
ДБФ.Записать();
//2
ДБФ.Добавить();
ДБФ.УстановитьЗначениеПоля("A","Номер п/п");
ДБФ.УстановитьЗначениеПоля("B","Номер счета");
ДБФ.УстановитьЗначениеПоля("C","Фамилия");
ДБФ.УстановитьЗначениеПоля("D","Имя");
ДБФ.УстановитьЗначениеПоля("E","Отчество");
ДБФ.УстановитьЗначениеПоля("F","Сумма");
ДБФ.УстановитьЗначениеПоля("G","Примечание");
ДБФ.Записать();

КоличествоЗаписей = 0;
СуммаИтого = 0;

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

    ДБФ.Добавить();
    ДБФ.УстановитьЗначениеПоля("A",н);
    ДБФ.УстановитьЗначениеПоля("B",Выборка.НомерЛицевогоСчета);
    ДБФ.УстановитьЗначениеПоля("C",Фамилия);
    ДБФ.УстановитьЗначениеПоля("D",Имя);
    ДБФ.УстановитьЗначениеПоля("E",Отчество);
    ДБФ.УстановитьЗначениеПоля("F",Формат(Выборка.Сумма,"ЧГ=6 ;ЧРД='.'; ЧДЦ=2"));
    ДБФ.Записать();
КонецЦикла;

Если НеФормироватьФайл = 1 тогда
    Сообщить("Файл не сформирован!", СтатусСообщения.ОченьВажное);
Иначе
    //итог
    ДБФ.Добавить();
    ДБФ.УстановитьЗначениеПоля("B","ИТОГО:");
    ДБФ.УстановитьЗначениеПоля("F",Формат(СуммаИтого,"ЧГ=6 ;ЧРД='.'; ЧДЦ=2"));
    ДБФ.Записать();

КонецЕсли;

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

angry
  • 8,677
  • 18
  • 74
  • 182
Ardarik
  • 119
  • А результат запроса какой? – Freezze Apr 09 '12 at 12:18
  • 2
    Я голосую за закрытие этого вопроса как не соответствующего теме, потому что отладкой кода в 1С лучше заниматься самостоятельно. – Yura Ivanov Oct 02 '15 at 21:08

0 Answers0