|
Не могу понять причину ошибки.. | ☑ | ||
---|---|---|---|---|
0
notbrain
28.11.14
✎
09:06
|
Имеем: Ут 11.1 и имеем некую обработку, которая должна из XML файла загружать данные в документ ПрочееОприходованиеТоваров.
Нажатие по кнопке "выгрузка и 77" дает список всех xml файлов, при выборе xml файла подтверждаю запись документа и выпадает ошибка, что каталог "С:\xx\xx" не найден (это реальный каталог, из которого я выбирал файл xml) &НаСервере Процедура ИмпортXMLСервер(ПутьКФайлу) Объект.Организация = Справочники.Организации.НайтиПоНаименованию("Общество с ограниченной ответственностью «Рога»",1); Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства; Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад Упаковки",1); ИмяФайла = ПутьКФайлу; ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяФайла); ПостроительDOM = Новый ПостроительDOM; ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML); Объект.Товары.Очистить(); //Объект.ДатаПлатежа = НачалоДня(ТекущаяДата()); Документ = ДокументDOM.ПолучитьЭлементыПоИмени("Документ"); ДокНо = Документ[0].getAttribute("Номер"); ДокДа = Документ[0].getAttribute("От"); Объект.Комментарий = "Загружено из 1с 7.7 ("+ДокНо+", "+ДокДа+") "+Строка(ТекущаяДата()); СуммаОбщая = 0; Товар = ДокументDOM.ПолучитьЭлементыПоИмени("Товар"); Для Позиц=0 По Товар.Количество()-1 Цикл НоваяСтрока = Объект.Товары.Добавить(); Код = Товар[Позиц].getAttribute("Код"); //Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Код); Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Код); Если Номенклатура.Пустая() Тогда Сообщить("Номенклатура с артикулом "+Код+" не найдена! Невозможно загрузить документ!"); Объект.Товары.Очистить(); Возврат; КонецЕсли; //ЦенаБезНдс = Товар[Позиц].getAttribute("Цена"); //ЦенаСНДС = (ЦенаБезНдс*(100+Число(Лев(Номенклатура.СтавкаНДС,СтрДлина(Номенклатура.СтавкаНДС)-1))))/100; //НДСЦены = Число(ЦенаСНДС) - Число(ЦенаБезНдс); //Перечисления.СтавкиНДС.НДС10. НоваяСтрока.КоличествоУпаковок = Товар[Позиц].getAttribute("Количество"); НоваяСтрока.Количество = Товар[Позиц].getAttribute("Количество"); //НоваяСтрока.Цена = ЦенаСНДС;//Товар[Позиц].getAttribute("Цена"); НоваяСтрока.Цена = Товар[Позиц].getAttribute("Цена"); НоваяСтрока.Номенклатура = Номенклатура; //НоваяСтрока.СтавкаНДС = Номенклатура.СтавкаНДС; //НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; НоваяСтрока.Упаковка = Номенклатура.ЕдиницаИзмерения; //НоваяСтрока.Склад = Объект.Склад; //НоваяСтрока.СуммаНДС = Число(НДСЦены)*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.СуммаСНДС = Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.Сумма = Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //Число(Товар[Позиц].getAttribute("Цена"))*Число(Товар[Позиц].getAttribute("Количество")); НоваяСтрока.Сумма = Число(Товар[Позиц].getAttribute("Цена"))*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.СуммаВзаиморасчетов = Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //Товар[Позиц].getAttribute("Цена"); //СуммаОбщая = Число(СуммаОбщая) + Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); НоваяСтрока.СтатьяРасходов = ПланыВидовХарактеристик.СтатьиРасходов.СебестоимостьПродаж; КонецЦикла; //Объект.СуммаВзаиморасчетов = СуммаОбщая; //Объект.СуммаДокумента = СуммаОбщая; ЧтениеXML.Закрыть(); //ПереместитьФайл(ПутьКФайлу, ПутьКФайлу+".bak"); ПараметрыЗаписи = Новый Структура; ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение); Записать(ПараметрыЗаписи); Сообщить("Спасибо за сотрудничество! Документ успешно загружен!"); ТолькоПросмотр = Истина; ВЦ = Справочники.ВидыЦен.НайтиПоНаименованию("Рога",1); ДокН = Документы.ПередачаТоваровМеждуОрганизациями.СоздатьДокумент(); ДокН.Дата = ТекущаяДата(); ДокН.Организация = Справочники.Организации.НайтиПоНаименованию("Общество с ограниченной ответственностью «Рога»",1); ДокН.ОрганизацияПолучатель = Справочники.Организации.НайтиПоНаименованию("Общество с ограниченной ответственностью «Рога2»",1); ДокН.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияТоваровВДругуюОрганизацию; ДокН.Склад = Справочники.Склады.НайтиПоНаименованию("Склад Упаковки",1); ДокН.Валюта = Справочники.Валюты.НайтиПоРеквизиту("НаименованиеПолное","Российский рубль"); ДокН.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоРеквизиту("НаименованиеПолное","Российский рубль"); //Объект.ЦенаВключаетНДС = Ложь; ДокН.ЦенаВключаетНДС = Истина; //Объект.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС; ДокН.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС; ДокН.ВидЦены = ВЦ; ИмяФайла = ПутьКФайлу; ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяФайла); ПостроительDOM = Новый ПостроительDOM; ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML); ДокН.Товары.Очистить(); ДокН.ДатаПлатежа = НачалоДня(ТекущаяДата()); Документ = ДокументDOM.ПолучитьЭлементыПоИмени("Документ"); ДокНо = Документ[0].getAttribute("Номер"); ДокДа = Документ[0].getAttribute("От"); ДокН.Комментарий = "Загружено из 1с 7.7 ("+ДокНо+", "+ДокДа+") "+Строка(ТекущаяДата()); СуммаОбщая = 0; Товар = ДокументDOM.ПолучитьЭлементыПоИмени("Товар"); Для Позиц=0 По Товар.Количество()-1 Цикл НоваяСтрока = ДокН.Товары.Добавить(); Код = Товар[Позиц].getAttribute("Код"); //Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Код); Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Код); Если Номенклатура.Пустая() Тогда Сообщить("Номенклатура с артикулом "+Код+" не найдена! Невозможно загрузить документ!"); Объект.Товары.Очистить(); Возврат; КонецЕсли; //ЦенаБезНдс = Товар[Позиц].getAttribute("Цена"); //ЦенаСНДС = (ЦенаБезНдс*(100+Число(Лев(Номенклатура.СтавкаНДС,СтрДлина(Номенклатура.СтавкаНДС)-1))))/100; //НДСЦены = Число(ЦенаСНДС) - Число(ЦенаБезНдс); //Перечисления.СтавкиНДС.НДС10. НоваяСтрока.КоличествоУпаковок = Товар[Позиц].getAttribute("Количество"); НоваяСтрока.Количество = Товар[Позиц].getAttribute("Количество"); НоваяСтрока.ВидЦены = ВЦ; //НоваяСтрока.Цена = ЦенаСНДС;//Товар[Позиц].getAttribute("Цена"); НоваяСтрока.Цена = Товар[Позиц].getAttribute("Цена"); НоваяСтрока.Номенклатура = Номенклатура; НоваяСтрока.СтавкаНДС = Номенклатура.СтавкаНДС; //НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; НоваяСтрока.Упаковка = Номенклатура.ЕдиницаИзмерения; //НоваяСтрока.Склад = Объект.Склад; //НоваяСтрока.СуммаНДС = Число(НДСЦены)*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.СуммаСНДС = Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.Сумма = Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //Число(Товар[Позиц].getAttribute("Цена"))*Число(Товар[Позиц].getAttribute("Количество")); НоваяСтрока.СуммаСНДС = Товар[Позиц].getAttribute("Цена")*Число(Товар[Позиц].getAttribute("Количество")); НоваяСтрока.Сумма = Число(Товар[Позиц].getAttribute("Цена"))*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.СуммаВзаиморасчетов = Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //Товар[Позиц].getAttribute("Цена"); //СуммаОбщая = Число(СуммаОбщая) + Число(ЦенаСНДС)*Число(Товар[Позиц].getAttribute("Количество")); //НоваяСтрока.СтатьяРасходов = ПланыВидовХарактеристик.СтатьиРасходов.СебестоимостьПродаж; КонецЦикла; ДокН.СуммаВзаиморасчетов = СуммаОбщая; ДокН.СуммаДокумента = СуммаОбщая; ЧтениеXML.Закрыть(); ПереместитьФайл(ПутьКФайлу, ПутьКФайлу+".bak"); ПараметрыЗаписи = Новый Структура; ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение); ДокН.Записать(РежимЗаписиДокумента.Запись); //Записать(ПараметрыЗаписи); ДокО = ДокН.Ссылка.ПолучитьОбъект(); // СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(ДокО); ЦеныРассчитаны = ПродажиСервер.ЗаполнитьЦены( ДокО.Товары, // Табличная часть , // Массив строк или структура отбора Новый Структура( // Параметры заполнения "Дата, Валюта, ВидЦены, ПоляЗаполнения", ДокО.Дата, ДокО.Валюта, ВЦ, "Цена, ВидЦены" ), Новый Структура( // Структура действий с измененными строками "ПересчитатьСумму, ПересчитатьСуммуСНДС, ПересчитатьСуммуНДС", "КоличествоУпаковок", СтруктураПересчетаСуммы, СтруктураПересчетаСуммы)); ДокО.Записать(РежимЗаписиДокумента.Запись); ДокО.Записать(РежимЗаписиДокумента.Проведение); // КонецПроцедуры &НаКлиенте Процедура ЗагрузитьИз77(Команда) Режим = РежимДиалогаВыбораФайла.Открытие; Файл = Новый ДиалогВыбораФайла(Режим); Файл.Фильтр = "Документы XML(*.xml)|*.xml;"; Файл.Заголовок = "Выберете файл для загрузки"; Файл.Каталог = "C:\obmen\77\"; КатНач = Файл.Каталог; Файл.Выбрать(); ПутьКФайлу = Файл.ПолноеИмяФайла; Если НРег(Файл.Каталог)<>НРег(КатНач) Тогда Сообщить("Для выбора файлов загрузки разрешен только каталог установленный по умолчанию"); Возврат; КонецЕсли; Если Не Объект.Ссылка.Пустая() Тогда Сообщить("Для загрузки данных необходимо создать новый документ"); Возврат; КонецЕсли; Режим = РежимДиалогаВопрос.ДаНет; Ответ = Вопрос("После загрузки данных документ будет записан. Продолжить?", Режим, 0); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ИмпортXMLСервер(ПутьКФайлу); //Для Каждого Крандибобик Из Объект.Товары Цикл // Идентификатор = Крандибобик.ПолучитьИдентификатор(); // ЭтаФорма.Элементы.Товары.ТекущаяСтрока = Идентификатор; // // ТекущаяСтрока = ЭтаФорма.Элементы.Товары.ТекущиеДанные; // СтруктураДействий = Новый Структура; // ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий,Объект); // ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); // РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма); // //КонецЦикла; //ОбновитьЗависимыеРеквизитыФормы(); //ОбновитьЗависимыеРеквизитыФормыСерверПоЗаказу(); //РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма); КонецПроцедуры |
|||
1
notbrain
28.11.14
✎
09:08
|
блин как то через ж разбился код
|
|||
2
notbrain
28.11.14
✎
09:12
|
&НаКлиенте
Процедура ЗагрузитьИз77(Команда) Режим = РежимДиалогаВыбораФайла.Открытие; Файл = Новый ДиалогВыбораФайла(Режим); Файл.Фильтр = "Документы XML(*.xml)|*.xml;"; Файл.Заголовок = "Выберете файл для загрузки"; Файл.Каталог = "C:\obmen\77\"; КатНач = Файл.Каталог; Файл.Выбрать(); ПутьКФайлу = Файл.ПолноеИмяФайла; Если НРег(Файл.Каталог)<>НРег(КатНач) Тогда Сообщить("Для выбора файлов загрузки разрешен только каталог установленный по умолчанию"); Возврат; КонецЕсли; Если Не Объект.Ссылка.Пустая() Тогда Сообщить("Для загрузки данных необходимо создать новый документ"); Возврат; КонецЕсли; Режим = РежимДиалогаВопрос.ДаНет; Ответ = Вопрос("После загрузки данных документ будет записан. Продолжить?", Режим, 0); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ИмпортXMLСервер(ПутьКФайлу); //Для Каждого Крандибобик Из Объект.Товары Цикл // Идентификатор = Крандибобик.ПолучитьИдентификатор(); // ЭтаФорма.Элементы.Товары.ТекущаяСтрока = Идентификатор; // // ТекущаяСтрока = ЭтаФорма.Элементы.Товары.ТекущиеДанные; // СтруктураДействий = Новый Структура; // ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий,Объект); // ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); // РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма); // //КонецЦикла; //ОбновитьЗависимыеРеквизитыФормы(); //ОбновитьЗависимыеРеквизитыФормыСерверПоЗаказу(); //РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма); КонецПроцедуры |
|||
3
notbrain
28.11.14
✎
09:12
|
ну вот, миста, не дает редактировать
|
|||
4
Defender aka LINN
28.11.14
✎
09:21
|
(0) Ничего, что клиент и сервер - не одна и та же машина?
|
|||
5
DmitriyDI
28.11.14
✎
09:21
|
(3) никто не скажет, по такому коду в чем дело, скорее всего права, если каталог реально есть, я бы посмотрел права доступа на этот каталог пользователей user1c
|
|||
6
DmitriyDI
28.11.14
✎
09:22
|
(5) + сетевой путь к папке
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |