|
ЗаписьXML.ЗаписатьТекст("2"); добавляет 0 | ☑ | ||
---|---|---|---|---|
0
dddonnn
25.10.13
✎
14:00
|
Формирую XML файл
При строке ЗаписьXML.ЗаписатьТекст("2"); в файле добавляет 0 , получается 20. Откуда 0 берется? |
|||
1
Зойч
25.10.13
✎
14:04
|
это не весь код
|
|||
2
dddonnn
25.10.13
✎
14:07
|
ЗаписьXML.ОткрытьФайл(ИмяФайлаДанных);
ВыборкаДетальныеЗаписи = ТаблицаДДС.Выбрать(); ЗаписьXML.ЗаписатьНачалоЭлемента("bddsfakt"); Записать = Истина; ТаблицаОшибок.Очистить(); К1 = Справочники.Контрагенты.НайтиПоКоду("000000167"); К2 = Справочники.Контрагенты.НайтиПоКоду("000000159"); К3 = Справочники.Контрагенты.НайтиПоКоду("000000168"); К4 = Справочники.Контрагенты.НайтиПоКоду("000000169"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбработкаПрерыванияПользователя(); Префикс = НайтиПрефиксОрганизации(ВыборкаДетальныеЗаписи.Организация, ВыборкаДетальныеЗаписи.СчетОрганизации); Если (ВыборкаДетальныеЗаписи.Контрагент <> К1) и (ВыборкаДетальныеЗаписи.Контрагент <> К2) и (ВыборкаДетальныеЗаписи.Контрагент <> К3) и (ВыборкаДетальныеЗаписи.Контрагент <> К4) Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("record"); ЗаписьXML.ЗаписатьНачалоЭлемента("dat"); ЗаписьXML.ЗаписатьТекст(Формат(ВыборкаДетальныеЗаписи.Дата,"ДФ=гггг-ММ-дд")); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("summa"); //1.5 //Если ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс.Код = "18" Тогда //Статья затрат РКО // ЗаписьXML.ЗаписатьТекст(СтрокаНорм(Формат(-ВыборкаДетальныеЗаписи.СуммаПлатежа,"ЧДЦ=2; ЧРД=."))); //Иначе // ЗаписьXML.ЗаписатьТекст(СтрокаНорм(Формат(ВыборкаДетальныеЗаписи.СуммаПлатежа,"ЧДЦ=2; ЧРД=."))); //КонецЕсли; Если ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами Тогда //Статья затрат РКО ЗаписьXML.ЗаписатьТекст(СтрокаНорм(Формат(-ВыборкаДетальныеЗаписи.СуммаПлатежа,"ЧДЦ=2; ЧРД=."))); Иначе ЗаписьXML.ЗаписатьТекст(СтрокаНорм(Формат(ВыборкаДетальныеЗаписи.СуммаПлатежа,"ЧДЦ=2; ЧРД=."))); КонецЕсли; // ЗаписьXML.ЗаписатьКонецЭлемента(); //ЗаписьXML.ЗаписатьНачалоЭлемента("stzatratid"); //1 // Так как в документах "Списание с расчетного счета" и "Поступление на расчетный счет" // в форме для операций //- "Перечисление подотчетному лицу" //- "Прочее списание" //- "Прочее поступление" //- "Перечисление заработной платы" // не было поле ввода для статьи затрат. // Теперь вставим поле ввода статья затрат и без него выгрузка не будет происходить. //Если Не ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс.Код) Тогда // ВидОпер = ВыборкаДетальныеЗаписи.Ссылка.ВидОперации; // ПеречислениеНалога = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеНалога; // ПрочиеРасчетыСКА = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПрочиеРасчетыСКонтрагентами; // ПрочиеПоступления = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПрочееПоступление; // ВозвратОтПоставщика = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ВозвратОтПоставщика ; // Если ВыборкаДетальныеЗаписи.Приход = "F" Тогда // СоцСтрах = ПланыСчетов.Хозрасчетный.РасчетыПоСоциальномуСтрахованию; // Счет = ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом; // СчетТЧ = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьФорму("ФормаДокумента").РасшифровкаПлатежа[0].СчетУчетаРасчетовСКонтрагентом; // Если ВидОпер = ПеречислениеНалога Тогда // Если СоцСтрах = Счет Или СоцСтрах= Счет.Родитель Или СоцСтрах= Счет.Родитель.Родитель Или СоцСтрах= Счет.Родитель.Родитель.Родитель Тогда // ЗаписьXML.ЗаписатьТекст("19"); //Это код статьи затрат - налоги // КонецЕсли; // ИначеЕсли ВидОпер = ПрочиеРасчетыСКА Тогда // Если СоцСтрах = СчетТЧ Или СоцСтрах= СчетТЧ.Родитель Или СоцСтрах= СчетТЧ.Родитель.Родитель Или СоцСтрах= СчетТЧ.Родитель.Родитель.Родитель Тогда // ЗаписьXML.ЗаписатьТекст("19"); //Это код статьи затрат - налоги // КонецЕсли; // //ИначеЕсли ВидОпер = ВозвратОтПоставщика Тогда // // КонецЕсли; // // Иначе //расход // Если ВидОпер = ВозвратОтПоставщика Тогда // РасчетыСпоставщиками = ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками; // Счет = ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом; // СчетТЧ = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьФорму("ФормаДокумента").РасшифровкаПлатежа[0].СчетУчетаРасчетовСКонтрагентом; // Если РасчетыСпоставщиками = Счет Или РасчетыСпоставщиками= Счет.Родитель Или РасчетыСпоставщиками= Счет.Родитель.Родитель Или РасчетыСпоставщиками= Счет.Родитель.Родитель.Родитель Тогда // ЗаписьXML.ЗаписатьТекст("60.01"); //Это код статьи затрат - налоги // КонецЕсли; // ИначеЕсли ВидОпер = ПрочиеПоступления Тогда // РасчетыСПодотчетнымиЛицами = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами; // Счет = ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом; // СчетТЧ = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьФорму("ФормаДокумента").РасшифровкаПлатежа[0].СчетУчетаРасчетовСКонтрагентом; // Если РасчетыСПодотчетнымиЛицами = Счет Или РасчетыСПодотчетнымиЛицами= Счет.Родитель Или РасчетыСПодотчетнымиЛицами= Счет.Родитель.Родитель Или РасчетыСПодотчетнымиЛицами= Счет.Родитель.Родитель.Родитель Тогда // ЗаписьXML.ЗаписатьТекст("71.01"); //Это код статьи затрат - налоги // КонецЕсли; // Иначе // Строка = ЭлементыФормы.ТаблицаОшибок.Значение.Добавить(); // Строка.Ссылка = ВыборкаДетальныеЗаписи.Ссылка; // Строка.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; // Строка.Ошибка = "Не указана статья затрат."; // Записать = Ложь; // Продолжить; // КонецЕсли; // КонецЕсли; //Иначе // ЗаписьXML.ЗаписатьТекст((ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс.Код)); //КонецЕсли; // //ЗаписьXML.ЗаписатьКонецЭлемента(); // Теперь вставим поле ввода статья затрат и без него выгрузка не будет происходить. // ЗаписьXML.ЗаписатьНачалоЭлемента("stzatratid"); //1 Если Не ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс.Код) Тогда Строка = ЭлементыФормы.ТаблицаОшибок.Значение.Добавить(); Строка.Ссылка = ВыборкаДетальныеЗаписи.Ссылка; Строка.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; Строка.Ошибка = "Не указана статья затрат."; Записать = Ложь; Продолжить; Иначе ЗаписьXML.ЗаписатьТекст((ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс.Код)); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("firmid"); //2 Если Не ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Контрагент.Externail_id) Тогда //Строка = ЭлементыФормы.ТаблицаОшибок.Значение.Добавить(); //Строка.Ссылка = ВыборкаДетальныеЗаписи.Ссылка; //Строка.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; //Строка.Ошибка = "Не заполнен Externail_id в контрагенте или не указан контрагент."; //Записать = Ложь; //Продолжить; ЗаписьXML.ЗаписатьТекст("0"); Иначе ЗаписьXML.ЗаписатьТекст(ВыборкаДетальныеЗаписи.Контрагент.Externail_id); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("pr"); ЗаписьXML.ЗаписатьТекст(ВыборкаДетальныеЗаписи.Приход); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("prim"); //Контрагент, ПП № от Даты (назначение платежа) Текст = Префикс+": "+ВыборкаДетальныеЗаписи.Контрагент.НаименованиеПолное+", ПП №"+Строка(ВыборкаДетальныеЗаписи.Ссылка.НомерВходящегоДокумента)+" от "+Формат(ВыборкаДетальныеЗаписи.Ссылка.ДатаВходящегоДокумента,"ДФ=dd.MM.yyyy")+" ("+ВыборкаДетальныеЗаписи.НазначениеПлатежа+")" ; ЗаписьXML.ЗаписатьТекст(Текст); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("proektid"); //3 Если Не ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Проекты.Код) Тогда Если ВыборкаДетальныеЗаписи.Приход = "T" Тогда РасчетыСПОЛ = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами_; РасчетыСПостИПод = ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками; Счет = ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом; СчетТЧ = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьФорму("ФормаДокумента").РасшифровкаПлатежа[0].СчетУчетаРасчетовСКонтрагентом; //Возврат командировочных Если РасчетыСПОЛ = Счет Или РасчетыСПОЛ= Счет.Родитель Или РасчетыСПОЛ= Счет.Родитель.Родитель Или РасчетыСПОЛ= Счет.Родитель.Родитель.Родитель Тогда Если ВыборкаДетальныеЗаписи.Контрагент.Код = "000000167" Тогда ЗаписьXML.ЗаписатьТекст("0"); КонецЕсли; //Возврат ошибочных денег ИначеЕсли РасчетыСПостИПод = Счет Или РасчетыСПостИПод= Счет.Родитель Или РасчетыСПостИПод= Счет.Родитель.Родитель Или РасчетыСПостИПод= Счет.Родитель.Родитель.Родитель Тогда ЗаписьXML.ЗаписатьТекст("0"); Иначе Строка = ЭлементыФормы.ТаблицаОшибок.Значение.Добавить(); Строка.Ссылка = ВыборкаДетальныеЗаписи.Ссылка; Строка.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; Строка.Ошибка = "Не указан проект."; Записать = Ложь; Продолжить; КонецЕсли; ИначеЕсли ВыборкаДетальныеЗаписи.Приход = "F" Тогда ЗаписьXML.ЗаписатьТекст("0"); КонецЕсли; Иначе ЗаписьXML.ЗаписатьТекст(ВыборкаДетальныеЗаписи.Проекты.Код); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); Если ВыборкаДетальныеЗаписи.СуммаПлатежа = 14800 Тогда Сообщить("123"); КонецЕсли; ЗаписьXML.ЗаписатьНачалоЭлемента("napravlenieid"); //4 НаправлениеИД = ВыборкаДетальныеЗаписи.Проекты.Направление.Код; Если ЗначениеЗаполнено(НаправлениеИД) Тогда НаправлениеИД = СтрокаНорм(Число(НаправлениеИД)); ЗаписьXML.ЗаписатьТекст(НаправлениеИД); Иначе //1.9 На тот случай, когда проект не стоит, а направление стоит Направление = ВыборкаДетальныеЗаписи.Ссылка.РасшифровкаПлатежа[0].Направление; Если ЗначениеЗаполнено(Направление) Тогда НаправлениеИД = СтрокаНорм(Число(Направление.Код)); ЗаписьXML.ЗаписатьТекст(НаправлениеИД); КонецЕсли; ////Если ВыборкаДетальныеЗаписи.Приход = "T" Тогда // Строка = ЭлементыФормы.ТаблицаОшибок.Значение.Добавить(); // Строка.Ссылка = ВыборкаДетальныеЗаписи.Ссылка; // Строка.Контрагент = ВыборкаДетальныеЗаписи.Контрагент; // Строка.Ошибка = "Не указано направление."; // Записать = Ложь; // Продолжить; ////ИначеЕсли ВыборкаДетальныеЗаписи.Приход = "F" Тогда //// ЗаписьXML.ЗаписатьТекст("0"); ////КонецЕсли; ЗаписьXML.ЗаписатьТекст("0"); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("ispolnitelid"); ЗаписьXML.ЗаписатьТекст("0"); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("is_nal"); ЗаписьXML.ЗаписатьТекст("T"); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("use_in_bdr"); //1.5 use_in_bdr = "F"; Если ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс <> Справочники.СтатьиЗатратКСПлюс.ПустаяСсылка() Тогда Если ВыборкаДетальныеЗаписи.СтатьиЗатратКСПлюс.Код = "18" или ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами или ВыборкаДетальныеЗаписи.Ссылка.ВидОперации = Перечисления.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеПодотчетномуЛицу Тогда //Статья затрат РКО и командировочные //Если ВыборкаДетальныеЗаписи.Ссылка.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами Тогда //Статья затрат РКО use_in_bdr = "T"; КонецЕсли; КонецЕсли; ЗаписьXML.ЗаписатьТекст(use_in_bdr); // // ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; КонецЦикла; |
|||
3
Зойч
25.10.13
✎
14:09
|
к коде стопицот раз добавляется 0
|
|||
4
Зойч
25.10.13
✎
14:10
|
а вот ЗаписьXML.ЗаписатьТекст("2"); нет совсем
|
|||
5
Ёпрст
25.10.13
✎
14:12
|
СтрокаНорм.. че хоть за функция ?
|
|||
6
Wobland
25.10.13
✎
14:14
|
(4) ну ошибся человек. ЗаписьXML.ЗаписатьТекст("0") добавляет двойку
|
|||
7
dddonnn
25.10.13
✎
14:15
|
(4) в коде
НаправлениеИД = СтрокаНорм(Число(Направление.Код)); ЗаписьXML.ЗаписатьТекст(НаправлениеИД); |
|||
8
dddonnn
25.10.13
✎
14:16
|
(5)
Функция СтрокаНорм (НачСтрока,длина=неопределено) экспорт Перем КонСтрока; Попытка Если длина = Неопределено тогда КонСтрока=СтрЗаменить(Строка(НачСтрока),Символы.НПП, ""); Иначе КонСтрока=Сред(СтрЗаменить(Строка(НачСтрока),Символы.НПП, ""),1,Длина); Конецесли; Исключение КонСтрока=""; КонецПопытки; Возврат КонСтрока; конецФункции |
|||
9
Зойч
25.10.13
✎
14:16
|
открой для себя Формат
|
|||
10
dddonnn
25.10.13
✎
14:17
|
(4) пробовал вместо переменной подставлять "2" и такая же хрень
|
|||
11
dddonnn
25.10.13
✎
14:18
|
(9) где именно?
|
|||
12
dddonnn
25.10.13
✎
14:28
|
Нашел косяк, там запись лишняя была ЗаписатьТекст("0")
|
|||
13
Wobland
25.10.13
✎
14:29
|
корочен, мне лениво разбирать эту простыню, автор врёт
http://screencast.com/t/Dbeh0gy7VUE |
|||
14
Зойч
25.10.13
✎
14:30
|
(10) вместо этого
СтрЗаменить(Строка(НачСтрока),Символы.НПП, "") |
|||
15
Serginio1
25.10.13
✎
14:33
|
(8) Используй XMLСтрока(Число)
|
|||
16
George Wheels
25.10.13
✎
15:22
|
Здесь покопай
//1.9 На тот случай, когда проект не стоит, а направление стоит Направление.Код наверно равно 2, а далее добавлен 0 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |