Имя: Пароль:
1C
1С v8
выгрузка в Excel. При выгрузке лицевых счетов в Excel все знаки после 15-го= 0
0 kap-v-kstu
 
11.07.12
16:10
Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
Сообщить("vpizdu!!!!");    
Попытка
//Эксель = СоздатьОбъект("Excel.Application");
//Эксель = СоздатьОбъект("Excel.Application");    
Эксель = Новый COMОбъект("Excel.Application");    
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Add();
Лист = Книга.Sheets.Add();
Попытка
Книга.SaveAs("D:\maket_nerezedent.xls");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;
Лист.Cells(1, 1).Value = 1;
Лист.Cells(1, 2).Value = 2;
Лист.Cells(1, 3).Value = 3;
Лист.Cells(1, 4).Value = 4;
Лист.Cells(1, 5).Value = 5;
Лист.Cells(1, 6).Value = 6;
Лист.Cells(1, 7).Value = 7;


Лист.Cells(2, 1).Value = "Порядковый номер по списку";
Лист.Cells(2, 2).Value = "номер организации";
Лист.Cells(2, 3).Value = "№ счета";
Лист.Cells(2, 4).Value = "Фамилия сотрудника Организации (русская транскрипция)";
Лист.Cells(2, 5).Value = "Имя сотрудника Организации (русская транскрипция)";
Лист.Cells(2, 6).Value = "Отчество сотрудника Организации (русская транскрипция)";
Лист.Cells(2, 7).Value = "Сумма, руб.РФ";

//Лист.Cells(3, 1).Value = 1;
//Лист.Cells(4, 1).Value = 2;
//Лист.Cells(5, 1).Value = 3;

//Лист.Cells(3, 2).Value = 117;
//Лист.Cells(4, 2).Value = 117;
//Лист.Cells(5, 2).Value = 117;
//Лист.Cells(7, 7).Value = ТекущаяДата();
//Эксель.Application.Quit();
А = ЭлементыФормы.Зарплата1.Значение;
//Если Значение заполнено
Если ЗначениеЗаполнено(А) Тогда
Предупреждение("Значение  заполнено" + А.Ссылка);
//ЭлементыФормы.Зарплата.
КонецЕсли;

Н=0;
Для Каждого стр из А.Зарплата Цикл
   
   //Сообщить(стр.Сумма);
   

   
   
   
   
   Если ЗначениеЗаполнено(стр.Физлицо) Тогда
       
   НомСтр=Н+3;
   Лист.Cells(НомСтр,7).Value = стр.Сумма;
   Лист.Cells(НомСтр,1).Value = Н+1;
   Лист.Cells(НомСтр,2).Value = 117;
//    K = стр.Физлицо.ПолноеНаименование());
   Лист.Cells(НомСтр,4).Value = стр.Физлицо.Наименование;
//    Запрос = Новый Запрос;
//    
//    Запрос.Текст = "ВЫБРАТЬ
//      |    ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета
//      |ИЗ
//      |    РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации";
//      |ГДЕ
//      |    ЛицевыеСчетаРаботниковОрганизации.ФизЛицо.Ссылка = &Ссылка";
//    
//Результат = Запрос.Выполнить();    

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

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
//Лист.Cells(НомСтр,3).Value = Формат(Выборка.НомерЛицевогоСчета,"ЧЦ=25; ЧДЦ=0");
Лист.Cells(НомСтр,3).Value = Выборка.НомерЛицевогоСчета;
Сообщить(Выборка.НомерЛицевогоСчета);
КонецЕсли;

   


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

КонецЕсли;


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

КонецЕсли;




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

КонецЕсли;












   КонецЕсли;
Н=Н+1;
   КонецЦикла;
   
Эксель.Application.Quit();    
КонецПроцедуры
1 Александр_
Тверь
 
11.07.12
16:11
(0) хвастаешся или что?
2 kap-v-kstu
 
11.07.12
16:12
Если Выборка.Следующий() Тогда
//Лист.Cells(НомСтр,3).Value = Формат(Выборка.НомерЛицевогоСчета,"ЧЦ=25; ЧДЦ=0");

Лист.Cells(НомСтр,3).Value = Выборка.НомерЛицевогоСчета;
Сообщить(Выборка.НомерЛицевогоСчета);
КонецЕсли;


а сообщается номер правильно. В Excel записывается неправильно. например
42222224345464645645 записывается в EXcel записывается как 42222224345464600000
3 kap-v-kstu
 
11.07.12
16:13
или что
4 AaNnDdRrEeYy
 
11.07.12
16:13
Выводиш в табличный документ а потом
ТабличныйДокумент.Записать(ТипфайлаТабличногоДокумента.XLS)
5 ptiz
 
11.07.12
16:15
Лист.Cells(НомСтр,3).Value = "'" + Формат(Выборка.НомерЛицевогоСчета,"ЧЦ=25; ЧВН=; ЧГ=");
6 kap-v-kstu
 
11.07.12
16:15
Дело в Excel?или в каком-то другом формате надо выгружать номер лицевого счета
7 xenos
 
11.07.12
16:17
(6) Попробуй пробел перед номером поставить чтобы воспринимался как текст, а не как число. и значение попробуй передавать в Лист.Cells(НомСтр,3).Text
8 эцп
 
11.07.12
16:18
(6) Установить формат ячейки "Текстовый" перед записью в неё значения
9 эцп
 
11.07.12
16:19
(0) Вопрос: а почему не проще создать всё средствами 1С, а результат потом сохранить в формате Excel?
10 kap-v-kstu
 
11.07.12
16:26
пожелание клиента))
спасибо большое)
11 kap-v-kstu
 
11.07.12
17:06
а как избавиться от кавычки "'". метод прав() не помогает
12 xenos
 
11.07.12
17:09
СтрЗаменить(Текст,"""","")