(), (49) Вот из принципа и вредности нашел ту хрень, которая доки создавала в другой базе (бухне) без всяких файлов, OLE и прочей лабуды. Прямой скуль-коннект.
Перем Соединение,ConnectionString,cmd,спрКонтрагенты,спрРС,спрБанки,КонтрДЗНВА1,КонтрДЗНВА2;
Перем сзСтавкиНДС,спрСтавкиНДС,спрБанкСчета,ФирмаУП;
Функция НайтиКонтрагента(п_ИНН)
спрКонтрагенты.ВыбратьЭлементы();
Пока спрКонтрагенты.ПолучитьЭлемент()=1 Цикл
т_ИНН=спрКонтрагенты.ИНН;
Если т_ИНН=п_ИНН Тогда
рд_ТЗ.Контрагент2=спрКонтрагенты.ТекущийЭлемент();
Возврат 1;
КонецЕсли;
КонецЦикла;
// ТЗ.Статус="нет Контрагента";
// Сообщить(Строка(ТЗ.Номер)+": Не найден контрагент");
Возврат 0;
КонецФункции
Функция НайтиПП(п_Пар)
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с '01.01.2005' по '31.12.2025';
|ОбрабатыватьДокументы все;
|ПП = Документ.ПлатежноеПоручение.ТекущийДокумент;
|Основание = Документ.ПлатежноеПоручение.Основание;
|Группировка Документ;
|Условие(Основание = п_Пар);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат ПолучитьПустоеЗначение("Документ.ПлатежноеПоручение");
КонецЕсли;
Док_=ПолучитьПустоеЗначение("Документ.ПлатежноеПоручение");
Пока Запрос.Группировка(1)=1 Цикл
Док_=Запрос.ПП;
КонецЦикла;
Возврат Док_;
КонецФункции
Функция НайтиРС()
спрРС.ИспользоватьВладельца(рд_ТЗ.Контрагент2);
Если спрРС.НайтиПоРеквизиту("Номер",рд_ТЗ.РС,0)=1 Тогда
рд_ТЗ.РасчетныйСчет=спрРС.ТекущийЭлемент();
Возврат 1;
КонецЕсли;
Возврат 0;
КонецФункции
Функция ПолучитьВидПлатежа(пар)
Если пар="8UJ" Тогда
Возврат Перечисление.ВидыПлатежа.Почтой;
ИначеЕсли пар="8UK" Тогда
Возврат Перечисление.ВидыПлатежа.Телеграфом;
ИначеЕсли пар="8UL" Тогда
Возврат Перечисление.ВидыПлатежа.Электронно;
Иначе
Возврат Null;
КонецЕсли;
КонецФункции
Функция ПолучитьАвтоПодст(пар)
Если пар="8VV" Тогда
Возврат Перечисление.ПодстановкаСуммыНДС.СуммаНДС;
ИначеЕсли пар="8VW" Тогда
Возврат Перечисление.ПодстановкаСуммыНДС.БезСуммыНДС;
ИначеЕсли пар="8VW" Тогда
Возврат Перечисление.ПодстановкаСуммыНДС.СуммаБезНДС;
ИначеЕсли пар="8VY" Тогда
Возврат Перечисление.ПодстановкаСуммыНДС.БезСуммыБезНДС;
Иначе
Возврат Null;
КонецЕсли;
КонецФункции
Функция ПолучитьСтавкуНДС(п_Н)
Перем t_str;
Если (п_Н>0) and (п_Н<7) Тогда
Возврат сзСтавкиНДС.Получить(п_Н,t_str);
Иначе
Возврат null;
КонецЕсли;
КонецФункции
Функция ПолучитьБанковскийСчет(п_БС)
спрБанкСчета.ИспользоватьВладельца(ФирмаУП);
Если спрБанкСчета.НайтиПоРеквизиту("Номер",п_БС,0)=1 Тогда
Возврат спрБанкСчета.ТекущийЭлемент();
Иначе
Возврат Null;
КонецЕсли;
КонецФункции
Процедура НайтиКонтрагентов()
спрКонтрагенты.ВыбратьЭлементы();
Пока спрКонтрагенты.ПолучитьЭлемент()=1 Цикл
Если спрКонтрагенты.ПометкаУдаления()=1 Тогда
Продолжить;
КонецЕсли;
Если ПустоеЗначение(спрКонтрагенты.ИНН)=1 Тогда
Продолжить;
КонецЕсли;
Состояние(спрКонтрагенты.Наименование);
т_ИНН=СокрЛП(спрКонтрагенты.ИНН);
Если Прав(т_ИНН,1)="/" Тогда
т_ИНН=Лев(т_ИНН,СтрДлина(т_ИНН)-1);
КонецЕсли;
рд_ТЗ.ВыбратьСтроки();
Пока рд_ТЗ.ПолучитьСтроку()=1 Цикл
Если ПустоеЗначение(рд_ТЗ.Контрагент2)=0 Тогда
Продолжить;
КонецЕсли;
Если т_ИНН=СокрЛП(рд_ТЗ.ИНН) Тогда
рд_ТЗ.Контрагент2=спрКонтрагенты.ТекущийЭлемент();
Если НайтиРС()=0 Тогда
рд_ТЗ.Контрагент2=Null;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
спрКонтрагенты.ВыбратьЭлементы();
Пока спрКонтрагенты.ПолучитьЭлемент()=1 Цикл
Если спрКонтрагенты.ПометкаУдаления()=1 Тогда
Продолжить;
КонецЕсли;
Если ПустоеЗначение(спрКонтрагенты.ИНН)=1 Тогда
Продолжить;
КонецЕсли;
Состояние(спрКонтрагенты.Наименование);
рд_ТЗ.ВыбратьСтроки();
Пока рд_ТЗ.ПолучитьСтроку()=1 Цикл
Если ПустоеЗначение(рд_ТЗ.Контрагент2)=0 Тогда
Продолжить;
КонецЕсли;
н_ИНН=Найти(рд_ТЗ.ИНН,"/");
Если н_ИНН=0 Тогда
т_ИНН=СокрЛП(рд_ТЗ.ИНН);
Иначе
н_ИНН=н_ИНН-1;
т_ИНН=Лев(рд_ТЗ.ИНН,н_ИНН);
КонецЕсли;
Если СокрЛП(спрКонтрагенты.ИНН1)=т_ИНН Тогда
рд_ТЗ.Контрагент2=спрКонтрагенты.ТекущийЭлемент();
Если НайтиРС()=0 Тогда
рд_ТЗ.Контрагент2=Null;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура Сформировать()
Перем стр;
Попытка
Если Соединение.State=0 Тогда
Соединение.Открыть(ConnectionString);
КонецЕсли;
Исключение
Предупреждение("Невозможно установить соединение");
КонецПопытки;
рд_ТЗ.УдалитьСтроки();
Cmd.ActiveConnection = Соединение;
Cmd.CommandText ="Select Дата_time_iddoc, substring(_1sjourn.Дата_TIME_IDDOC,1,8) as DataDoc,_1sjourn.DOCNO,
| sc97.sp73 as BankS4et, sc133.sp122 as KontrNaim, sc133.sp126 as INN,sc174.sp159 as Ras4etnyS4et,
| cast(sp12059 as char) as summa,cast(sp12061 as char) as nds, sp12060 as StavkaNDS,
| sp12063 as SrokPlatezha, sp12066 as Soderzhanie, sp12062 as VidPlatezha, cast(sp12064 as char) as O4erednost,
| sp12065 as AvtoPodst, cast(sp37063 as char) as PerNaloga, sp37064 as StatusSost, sp37065 as KodBK, sp37066 as KodOKATO,
| sp37067 as PokOsnovanija, sp37068 as PokPerioda, sp37069 as PokNomera, sp37070 as PokDaty,sp37071 as PokTipa,
| sp475 as Kom
| from dh12070 as d Лев outer join _1sjourn on d.idDOC=_1sjourn.IDDOC
| Лев outer join sc174 on d.sp12068=sc174.id
| Лев outer join sc133 on d.sp12058=sc133.id
| Лев outer join sc97 on d.sp12057=sc97.id
| where _1sjourn.isMark=0 and substring(_1sjourn.Дата_TIME_IDDOC,1,8)>='"+Формат(НачДата,"DYYYYMMDD")+"' and substring(_1sjourn.Дата_TIME_IDDOC,1,8)<='"+Формат(КонДата,"DYYYYMMDD")+"'";
Rs = СоздатьОбъект("ADODB.RecordSet");
Rs = Cmd.Выполнить;
Если rs.ВКонце()=0 Тогда
Ном=0;
Rs.MoveFirst();
Пока Rs.ВКонце() = 0 Цикл
рд_ТЗ.НоваяСтрока();
Ном=Ном+1;
рд_ТЗ.Номер=ном;
рд_ТЗ.IDDOC=Rs.Fields("Дата_time_iddoc").Значение;
рд_ТЗ.ДатаДок=Rs.Fields("DataDoc").Значение;
рд_ТЗ.НомерДок=Rs.Fields("DOCNO").Значение;
рд_ТЗ.Сумма=Rs.Fields("summa").Значение;
рд_ТЗ.НДС=Rs.Fields("nds").Значение;
рд_ТЗ.СтавкаНДС=Rs.Fields("StavkaNDS").Значение;
рд_ТЗ.СрокПлатежа=Rs.Fields("SrokPlatezha").Значение;
рд_ТЗ.РС=Rs.Fields("Ras4etnyS4et").Значение;
рд_ТЗ.Контрагент=Rs.Fields("KontrNaim").Значение;
рд_ТЗ.ИНН=Rs.Fields("INN").Значение;
рд_ТЗ.БС=Rs.Fields("BankS4et").Значение;
рд_ТЗ.БанковскийСчет=ПолучитьБанковскийСчет(рд_ТЗ.БС);
рд_ТЗ.СтавкаНДС=ПолучитьСтавкуНДС(Число(Rs.Fields("StavkaNDS").Значение));
рд_ТЗ.СрокПлатежа=?(ДатаГод(рд_ТЗ.СрокПлатежа)=1753,ПолучитьПустоеЗначение(),рд_ТЗ.СрокПлатежа);
рд_ТЗ.Содержание=Rs.Fields("Soderzhanie").Значение;
рд_ТЗ.ВидПлатежа=ПолучитьВидПлатежа(СокрЛП(Rs.Fields("VidPlatezha").Значение));
рд_ТЗ.Очередность=Rs.Fields("O4erednost").Значение;
рд_ТЗ.АвтоПодст=ПолучитьАвтоПодст(СокрЛП(Rs.Fields("AvtoPodst").Значение));
рд_ТЗ.ПеречислениеНалога=Rs.Fields("PerNaloga").Значение;
рд_ТЗ.СтатусСоставителяПлДок=Rs.Fields("StatusSost").Значение;
рд_ТЗ.КодБК=Rs.Fields("KodBK").Значение;
рд_ТЗ.КодОКАТО=Rs.Fields("KodOKATO").Значение;
рд_ТЗ.ПоказательОснования=Rs.Fields("PokOsnovanija").Значение;
рд_ТЗ.ПоказательПериода=Rs.Fields("PokPerioda").Значение;
рд_ТЗ.ПоказательНомера=Rs.Fields("PokNomera").Значение;
рд_ТЗ.ПоказательДаты=Rs.Fields("PokDaty").Значение;
рд_ТЗ.ПоказательДаты=?(ДатаГод(рд_ТЗ.ПоказательДаты)=1753,ПолучитьПустоеЗначение(),рд_ТЗ.ПоказательДаты);
рд_ТЗ.ПоказательТипа=Rs.Fields("PokTipa").Значение;
рд_ТЗ.Комментарий=Rs.Fields("Kom").Значение;
рд_ТЗ.ПП=НайтиПП("УП"+рд_ТЗ.IDDOC);
рд_ТЗ.Выбор=1;
Rs.MoveNext();
КонецЦикла;
КонецЕсли;
Rs.Close();
Соединение.Close();
НайтиКонтрагентов();
КонецПроцедуры
Процедура ПриОткрытии()
спрКонтрагенты=СоздатьОбъект("Справочник.Контрагенты");
спрРС=СоздатьОбъект("Справочник.РасчетныеСчета");
спрБанкСчета=СоздатьОбъект("Справочник.БанковскиеСчета");
спрСтавкиНДС=СоздатьОбъект("Справочник.СтавкиНДС");
сзСтавкиНДС=СоздатьОбъект("СписокЗначений");
спрСтавкиНДС.НайтиПоКоду(2);
сзСтавкиНДС.ДобавитьЗначение(спрСтавкиНДС.ТекущийЭлемент());
спрСтавкиНДС.НайтиПоКоду(3);
сзСтавкиНДС.ДобавитьЗначение(спрСтавкиНДС.ТекущийЭлемент());
спрСтавкиНДС.НайтиПоКоду(1);
сзСтавкиНДС.ДобавитьЗначение(спрСтавкиНДС.ТекущийЭлемент());
спрСтавкиНДС.НайтиПоКоду(4);
сзСтавкиНДС.ДобавитьЗначение(спрСтавкиНДС.ТекущийЭлемент());
спрСтавкиНДС.НайтиПоКоду(5);
сзСтавкиНДС.ДобавитьЗначение(спрСтавкиНДС.ТекущийЭлемент());
спрСтавкиНДС.НайтиПоКоду(6);
сзСтавкиНДС.ДобавитьЗначение(спрСтавкиНДС.ТекущийЭлемент());
спрФирмы=СоздатьОбъект("Справочник.Фирмы");
Если спрФирмы.НайтиПоКоду(3)=1 Тогда
ФирмаУП=спрФирмы.ТекущийЭлемент();
Иначе
Сообщить("Error");
Возврат;
КонецЕсли;
НачДата=РабочаяДата();
КонДата=РабочаяДата();
рд_ТЗ.НоваяКолонка("Выбор","Число",3,0, "Выбор",3,);
рд_ТЗ.НоваяКолонка("Номер","Число",3,0, "№",3,);
рд_ТЗ.НоваяКолонка("ПП","Документ.ПлатежноеПоручение",,,"ПлатежноеПоручение",8);
рд_ТЗ.НоваяКолонка("ДатаДок","Дата",8,0,"ДатаДок",10);
рд_ТЗ.НоваяКолонка("НомерДок","Строка",8,0,"НомерДок",8);
рд_ТЗ.НоваяКолонка("Контрагент","Строка",50,0,"Контрагент",50);
рд_ТЗ.НоваяКолонка("ИНН","Строка",20,0,"ИНН",20);
рд_ТЗ.НоваяКолонка("Контрагент2","Справочник.Контрагенты",50,0,"Контрагент в БД",50);
рд_ТЗ.НоваяКолонка("РасчетныйСчет","Справочник.РасчетныеСчета",50,0,"РасчетныеСчета",50);
// рд_ТЗ.НоваяКолонка("КПП","Строка",9,0,"КПП",11);
рд_ТЗ.НоваяКолонка("РС","Строка",20,0,"р/с",25);
рд_ТЗ.НоваяКолонка("БС","Строка",20,0,"б/с",25);
рд_ТЗ.НоваяКолонка("БанковскийСчет","Справочник.БанковскиеСчета",,,"Банковский Счет",30);
рд_ТЗ.НоваяКолонка("Сумма","Число",13,2,"Сумма",12);
рд_ТЗ.НоваяКолонка("НДС","Число",13,2,"НДС",10);
рд_ТЗ.НоваяКолонка("СтавкаНДС","Справочник.СтавкиНДС",,,"СтавкаНДС",15);
рд_ТЗ.НоваяКолонка("ВидПлатежа","Перечисление.ВидыПлатежа",,,"Вид платежа",9);
рд_ТЗ.НоваяКолонка("СрокПлатежа","Дата",8,0,"Срок платежа",8);
рд_ТЗ.НоваяКолонка("Очередность","Число",1,0,"Очередность",1);
рд_ТЗ.НоваяКолонка("АвтоПодст","Перечисление.ПодстановкаНДС",,,"АвтоПодст",9);
рд_ТЗ.НоваяКолонка("ПеречислениеНалога","Число",1,0,"ПеречислениеНалога",1);
рд_ТЗ.НоваяКолонка("СтатусСоставителяПлДок","Строка",2,,"СтатусСоставителяПлДок",2);
рд_ТЗ.НоваяКолонка("КодБК","Строка",20,,"КодБК",20);
рд_ТЗ.НоваяКолонка("КодОКАТО","Строка",11,,"КодОКАТО",11);
рд_ТЗ.НоваяКолонка("ПоказательОснования","Строка",2,,"ПоказательОснования",2);
рд_ТЗ.НоваяКолонка("ПоказательПериода","Строка",10,,"ПоказательПериода",10);
рд_ТЗ.НоваяКолонка("ПоказательНомера","Строка",18,,"ПоказательНомера",18);
рд_ТЗ.НоваяКолонка("ПоказательДаты","Дата",,,"ПоказательДаты",8);
рд_ТЗ.НоваяКолонка("ПоказательТипа","Строка",2,,"ПоказательТипа",2);
рд_ТЗ.НоваяКолонка("IDDOC","Строка",29,,"IDDOC",29);
рд_ТЗ.НоваяКолонка("Содержание","Строка",,0,"Содержание",100);
рд_ТЗ.НоваяКолонка("Комментарий","Строка",,0,"Комментарий",100);
рд_ТЗ.ВыводитьПиктограммы(1,1);
Соединение = СоздатьОбъект("ADODB.Connection");
Cmd = СоздатьОбъект("ADODB.Command");
ConnectionString = "Provider=SQLOLEDB.1;Password=password1C;Persist Security Info=True;User ID=login1C;Initial Catalog=sales;Data Source=SQLSERVER";
Соединение.ConnectionTimeOut =30;
Соединение.CursorLocation = 3;
КонецПроцедуры
Процедура ВыбратьВсе()
//ТЗ.ВыбратьСтроки();
//Пока ТЗ.ПолучитьСтроку()=1 Цикл
// Если (СокрЛП(ТЗ.Статус)="готово к переносу") Тогда
// ТЗ.Выбор=?((ТЗ.Выбор=1),2,1);
// Иначе
// ТЗ.Выбор=1;
// КонецЕсли;
//
//КонецЦикла;
//
рд_ТЗ.Заполнить(2,,,"Выбор");
КонецПроцедуры
Процедура ОтменитьВсе()
рд_ТЗ.Заполнить(1,,,"Выбор");
КонецПроцедуры
Процедура ПометитьСтроку()
Если рд_ТЗ.ТекущаяКолонка()="Контрагент2" Тогда
ОткрытьФорму(рд_ТЗ.Контрагент2,,1);
ИначеЕсли рд_ТЗ.ТекущаяКолонка()="РасчетныйСчет" Тогда
ОткрытьФорму(рд_ТЗ.РасчетныйСчет,,1);
Иначе
рд_ТЗ.Выбор=?((рд_ТЗ.Выбор=1),2,1);
КонецЕсли;
//Если (СокрЛП(ТЗ.Статус)="готово к переносу") Тогда
// ТЗ.Выбор=?((ТЗ.Выбор=1),2,1);
//ИначеЕсли (СокрЛП(ТЗ.Статус)="нет р/с") Тогда
// ДобавитьРС(ТЗ.Контрагент2);
// Если НайтиКонтрагента(СокрЛП(ТЗ.ИНН),СокрЛП(ТЗ.КПП))=1 Тогда
// ТЗ.Выбор=2;
// Иначе
// ТЗ.Выбор=1;
// КонецЕсли;
//ИначеЕсли (СокрЛП(ТЗ.Статус)="нет Контрагента") Тогда
// ДобавитьКонтр();
// Если НайтиКонтрагента(СокрЛП(ТЗ.ИНН),СокрЛП(ТЗ.КПП))=1 Тогда
// ТЗ.Выбор=2;
// Иначе
// ТЗ.Выбор=1;
// КонецЕсли;
//Иначе
// ТЗ.Выбор=1;
//КонецЕсли;
КонецПроцедуры
Процедура СоздатьПП()
рд_ТЗ.ВыбратьСтроки();
Пока рд_ТЗ.ПолучитьСтроку()=1 Цикл
Если рд_ТЗ.Выбор=2 Тогда
Если ПустоеЗначение(рд_ТЗ.Контрагент2)=1 Тогда
Сообщить("Не найден контрагент");
Продолжить;
КонецЕсли;
Если ПустоеЗначение(рд_ТЗ.БанковскийСчет)=1 Тогда
Сообщить("Не найден Банковский счет");
Продолжить;
КонецЕсли;
Если ПустоеЗначение(рд_ТЗ.РасчетныйСчет)=1 Тогда
Сообщить("Не найден Расчетный счет");
Продолжить;
КонецЕсли;
Если ПустоеЗначение(рд_ТЗ.ПП)=0 Тогда
Сообщить("Платежное Поручение "+Строка(рд_ТЗ.ПП)+"уже есть");
Продолжить;
КонецЕсли;
ДокПП=СоздатьОбъект("Документ.ПлатежноеПоручение");
НД=Строка(Число(рд_ТЗ.НомерДок));
Если СтрДлина(НД)>6 Тогда
Сообщить("Слишком длинный номер");
Продолжить;
КонецЕсли;
ДокПП.Новый();
глВводНового(ДокПП);
ДокПП.НомерДок="УП"+НД;
ДокПП.ДатаДок=рд_ТЗ.ДатаДок;
ДокПП.Фирма=ФирмаУП;
ДокПП.Основание="УП"+рд_ТЗ.IDDOC;;
ДокПП.РасчетныйСчет = рд_ТЗ.БанковскийСчет;
ДокПП.Контрагент=рд_ТЗ.Контрагент2;
ДокПП.Сумма=рд_ТЗ.Сумма;
ДокПП.СтавкаНДС=рд_ТЗ.СтавкаНДС;
ДокПП.ВидПлатежа = рд_ТЗ.ВидПлатежа;
ДокПП.СрокПлатежа = рд_ТЗ.СрокПлатежа;
ДокПП.Очередность = рд_ТЗ.Очередность;
ДокПП.АвтоПодстСуммыНДС = рд_ТЗ.АвтоПодст;
ДокПП.Содержание = рд_ТЗ.Содержание;
ДокПП.СчетКонтрагента = рд_ТЗ.РасчетныйСчет;
ДокПП.ПеречислениеНалога = рд_ТЗ.ПеречислениеНалога;
ДокПП.СтатусСоставителяПлДок = рд_ТЗ.СтатусСоставителяПлДок;
ДокПП.КодБК = рд_ТЗ.КодБК;
ДокПП.КодОКАТО = рд_ТЗ.КодОКАТО;
ДокПП.ПоказательОснования = рд_ТЗ.ПоказательОснования;
ДокПП.ПоказательПериода = рд_ТЗ.ПоказательПериода;
ДокПП.ПоказательНомера = рд_ТЗ.ПоказательНомера;
ДокПП.ПоказательДаты = рд_ТЗ.ПоказательДаты;
ДокПП.ПоказательТипа = рд_ТЗ.ПоказательТипа;
ДокПП.Комментарий = рд_ТЗ.Комментарий;
ДокПП.НомерДляБанка= НД;
Если глПриЗаписи(ДокПП)=0 Тогда
Возврат;
КонецЕсли;
ДокПП.Записать();
Сообщить(Строка(рд_ТЗ.Номер)+": ПлатежноеПоручение создано №"+Строка(ДокПП.НомерДок));
рд_ТЗ.Выбор=1;
рд_ТЗ.ПП=ДокПП.ТекущийДокумент();
КонецЕсли;
КонецЦикла
КонецПроцедуры
Процедура ОбновитьПП()
рд_ТЗ.ВыбратьСтроки();
Пока рд_ТЗ.ПолучитьСтроку()=1 Цикл
Если рд_ТЗ.Выбор=2 Тогда
ДокПП=СоздатьОбъект("Документ.ПлатежноеПоручение");
Если ПустоеЗначение(рд_ТЗ.ПП)=1 Тогда
Сообщить("Платежное Поручение не найдено");
Продолжить;
КонецЕсли;
Если ПустоеЗначение(рд_ТЗ.Контрагент2)=1 Тогда
Сообщить("Не найден контрагент");
Продолжить;
КонецЕсли;
Если ПустоеЗначение(рд_ТЗ.БанковскийСчет)=1 Тогда
Сообщить("Не найден Банковский счет");
Продолжить;
КонецЕсли;
Если ПустоеЗначение(рд_ТЗ.РасчетныйСчет)=1 Тогда
Сообщить("Не найден Расчетный счет");
Продолжить;
КонецЕсли;
НД=Строка(Число(рд_ТЗ.НомерДок));
Если СтрДлина(НД)>6 Тогда
Сообщить("Слишком длинный номер");
Продолжить;
КонецЕсли;
Если ДокПП.НайтиДокумент(рд_ТЗ.ПП)=1 Тогда
ДокПП.НомерДок="УП"+НД;
ДокПП.ДатаДок=рд_ТЗ.ДатаДок;
ДокПП.Фирма=ФирмаУП;
ДокПП.Основание="УП"+рд_ТЗ.IDDOC;
ДокПП.РасчетныйСчет = рд_ТЗ.БанковскийСчет;
ДокПП.Контрагент=рд_ТЗ.Контрагент2;
ДокПП.Сумма=рд_ТЗ.Сумма;
ДокПП.СтавкаНДС=рд_ТЗ.СтавкаНДС;
ДокПП.ВидПлатежа = рд_ТЗ.ВидПлатежа;
ДокПП.СрокПлатежа = рд_ТЗ.СрокПлатежа;
ДокПП.Очередность = рд_ТЗ.Очередность;
ДокПП.АвтоПодстСуммыНДС = рд_ТЗ.АвтоПодст;
ДокПП.Содержание = рд_ТЗ.Содержание;
ДокПП.СчетКонтрагента = рд_ТЗ.РасчетныйСчет;
ДокПП.ПеречислениеНалога = рд_ТЗ.ПеречислениеНалога;
ДокПП.СтатусСоставителяПлДок = рд_ТЗ.СтатусСоставителяПлДок;
ДокПП.КодБК = рд_ТЗ.КодБК;
ДокПП.КодОКАТО = рд_ТЗ.КодОКАТО;
ДокПП.ПоказательОснования = рд_ТЗ.ПоказательОснования;
ДокПП.ПоказательПериода = рд_ТЗ.ПоказательПериода;
ДокПП.ПоказательНомера = рд_ТЗ.ПоказательНомера;
ДокПП.ПоказательДаты = рд_ТЗ.ПоказательДаты;
ДокПП.ПоказательТипа = рд_ТЗ.ПоказательТипа;
ДокПП.Комментарий = рд_ТЗ.Комментарий;
ДокПП.НомерДляБанка= НД;
Если глПриЗаписи(ДокПП)=0 Тогда
Возврат;
КонецЕсли;
ДокПП.Записать();
Сообщить(Строка(рд_ТЗ.Номер)+": Платежное поручение исправлено №"+Строка(ДокПП.НомерДок));
КонецЕсли;
рд_ТЗ.Выбор=1;
КонецЕсли;
КонецЦикла
КонецПроцедуры
P.S. Кое-где мой переводчик на русский (были команды 1С на англ.) перестарался: заменил на русские аналоги и в скуль-командах