|
Проверка данных из XML файла при переносе информации из торговли в бухгалтерию | ☑ | ||
---|---|---|---|---|
0
Vladislava-smile
13.08.13
✎
03:21
|
Добрый день. Такая проблема возникла - с помощью обработчика мы выполняем выгрузку данных из торговли 8 по определенной организации, сохраняем в XML файл. Затем с помощью того же самого обработчика загружаем банные в бухгалтерию 8. Мне нужно сделать проверку - чтобы данные из файла перед записью проверялись в ту ли информационную базу будут они записаны. Как то так. То есть у нас есть база АСК и ДЭТК. Допустим выгрузили данные из АСК, а из-за криворуких менеджеров записали в ДЭТК или наоборот - надо исключить такой вариант. Я новичок в 1с, но работала на С++. Я предполагаю, что там просто нужно вставить условие
Я не знаю как вытащить из XML файла переменную, которая прописывает организацию. Если ИмяИнформационнойБазыНаСервереДляПодключения=ПеременнаяОрганизации Тогда мУниверсальнаяВыгрузкаДанных.ВыполнитьЗагрузку(); КонецЕсли; Помогите плиз )) |
|||
1
Злопчинский
13.08.13
✎
03:22
|
не, без фотки внятной - здесь не помогут...
|
|||
2
Vladislava-smile
13.08.13
✎
03:33
|
А что непонятного? Вроде все четко написано.
Еще раз - есть торговля и бухгалтерия 8, есть 2 инф. базы - АСК и ДЭТК. Есть файлы выгрузки и загрузки данных соответственно. При выгрузке - есть поле выбора организации - допустим АСК, далее идет запись в файл XML. Далее открыввается какая-то база в бухгалтерии и идет запись данных из сохраненного файла. Надо вставить проверку ИмяИнформационнойБазыНаСервереДляПодключения (это ИБ открытая в бухгалтерии) = создать какую то переменную и в нее записать название базы или организации (одно и то же), вытащенной как-то из файла. |
|||
3
Vladislava-smile
13.08.13
✎
03:33
|
на этом форуме нельзя же прикреплять файлы?
|
|||
4
Vladislava-smile
13.08.13
✎
06:41
|
А в ответ тишина ........
|
|||
5
Cube
13.08.13
✎
07:11
|
(4) На этом форуме девушкам с удачными фотками в личной карточке помогают особенно хорошо. А вот у тебя, пока, нет фотки никакой... Намек понятен? :)
|
|||
6
Vladislava-smile
13.08.13
✎
08:06
|
)) Намек ясен. Я сейчас на работе, как домой приду - поставлю аватарку )) Вы ток помогите )) Я занимаюсь 1с всего 3-й день, а у меня в голове просто каша.
|
|||
7
Cyberhawk
13.08.13
✎
08:08
|
Открой файл в блокноте и поищи в нем аббревиатуры своих организаций
|
|||
8
Рэйв
13.08.13
✎
08:12
|
(0)Да напиши имя базы приемника первым тэгом в xml файле и проверяй.
|
|||
9
Cube
13.08.13
✎
08:57
|
(6) Если выгрузка-загрузка типовые, то самый наипростейший вариант - написать организацию в имя файла. Ну и в выгрузке убрать возможность редактирования имени, а в загрузке добавить проверку по имени файла.
|
|||
10
Vladislava-smile
13.08.13
✎
09:19
|
Рейв, твой способ подходит лучше всего, спасибо ) сегодня попробую, если что еще отпишусь.
|
|||
11
Vladislava-smile
14.08.13
✎
02:19
|
Люди добрые, подскажите как мне вытаскивать название организации и записывать его первым в файл?
ПравилаОбменаТеста выглядит так: <ПравилаОбмена> <ВерсияФормата>2.01</ВерсияФормата> <Ид>2b28e730-66c7-4606-90e6-5ae8511335c7 </Ид> <Наименование>Управление Торговлей 10.3.16 --> Бухгалтерия Предприятия, редакция 2.0</Наименование> <ДатаВремяСоздания>2012-03-22T03:17:54</ДатаВремяСоздания> <Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="10.3.16.1" СинонимКонфигурации="Управление торговлей, редакция 10.3">УправлениеТорговлей</Источник> <Приемник ВерсияПлатформы="8.0" ВерсияКонфигурации="2.0.33.8" СинонимКонфигурации="Бухгалтерия предприятия, редакция 2.0">БухгалтерияПредприятия</Приемник> <ПослеЗагрузкиПравилОбмена> //рекомендуемые настройки поиска ВариантыНастроекПоиска = Новый Структура; ВариантыНастроекПоиска.Вставить("Контрагенты","ИННКППНаименование"); ВариантыНастроекПоиска.Вставить("Организации","ИННКППНаименование"); ВариантыНастроекПоиска.Вставить("Номенклатура","НаименованиеРодительЭтоГруппа"); ВариантыНастроекПоиска.Вставить("ФизическиеЛица","НаименованиеДатаРождения"); Это начало, но я реально не полнимаю пока как он работает с этими правилами, за одно кто может пояснить |
|||
12
Vladislava-smile
14.08.13
✎
04:22
|
Народ, ну помогите, а? Как вообще формируется XML файл? Как я понимаю через макет - правилаОбменаТекст. Только когда я меняю там теги или новые добавляю в файле при выгрузке это не отображаеется.
|
|||
13
Emilio
14.08.13
✎
04:34
|
(12) я так и не понял, что тебе надо.
Объясняй на пальцах... |
|||
14
Vladislava-smile
14.08.13
✎
07:05
|
В форме при выгрузке файлов из торговли есть поле выбора организации, документы по которой должны быть выгружены.
Как раз название этой организации нужно проверять с названием базы бухгалтерии, в которую мы хотим загрузить данные. Я хочу добавлять название выбранной в торговле организации первым тегом в файл. Как это сделать не знаю. А при загрузке с помощью функции СтрокаСоединенияИнформационнойБазы(); узнаем путь к базе. Узнаем отдельно имя ИБ. Затем сравниваем его с первым тегом из файла при открытии, куда мы записали название организации при выгрузке. и Усе |
|||
15
Vladislava-smile
14.08.13
✎
07:07
|
Или имя базы приемника написать первым тегом в файле (это мне выше предложили), но я не знаю как это осуществить ибо на С++ все гораздо проще было блин ))
|
|||
16
НаборДанных
14.08.13
✎
07:09
|
(14)При загрузке можно и данные по организации, например ИНН, узнать. СтрокаСоединения - блаж.
|
|||
17
НаборДанных
14.08.13
✎
07:09
|
(15)Поржал от души, извините за мой французский, лабораторки в универе легче на ц++, естественно.
|
|||
18
НаборДанных
14.08.13
✎
07:11
|
При выгрузке пиши первым тэг - комментарий ИНН, при загрузке его прочитай и проверь, делов на 1/10 лабораторки по плюсам.
|
|||
19
Vladislava-smile
14.08.13
✎
07:17
|
Я не могу понять где формируется этот файл. Ибо у меня есть в макетах ПравилаОбменаТекстом, но если я его изменяю, то все равно ничего не меняется при выгрузке.
|
|||
20
Cyberhawk
14.08.13
✎
10:52
|
(6) "Я сейчас на работе, как домой приду - поставлю аватарку"
|
|||
21
Cyberhawk
14.08.13
✎
10:52
|
Ночевала на работе? :о)
|
|||
22
Vladislava-smile
15.08.13
✎
02:27
|
Ага )) Да просто как домой приезжаешь вопросы тут же "бегут" из моей головы. ))
|
|||
23
Vladislava-smile
15.08.13
✎
03:09
|
Я не могу понять где происходит сама запись в файл. Алгоритм http://help1c.com/faq/view/797.html не подходит, у меня в коде не используется функция Запись ((
Вот что там есть //Определяем режим обмена ДокументДОМ = ПолучитьДокументДОМ(ТекстПравилОбмена); Функция ПолучитьДокументДОМ(ТекстXML) Экспорт ХМЛ = Новый ЧтениеXML(); ХМЛ.УстановитьСтроку(ТекстXML); ПостроительДОМ = Новый ПостроительDOM(); ДокументДОМ = ПостроительДОМ.Прочитать(ХМЛ); ХМЛ.Закрыть(); Возврат ДокументДОМ; КонецФункции // ПолучитьДокументДОМ() Узел = ПолучитьУзелДОМ(ДокументДОМ, "Источник"); Функция ПолучитьУзелДОМ(ДокументДОМ, ИмяУзла) Экспорт КорневойЭлемент = ДокументДОМ.ЭлементДокумента; Узел = КорневойЭлемент.ПолучитьЭлементыПоИмени(ИмяУзла)[0]; Возврат Узел; КонецФункции // ПолучитьУзелДОМ() Источник = Узел.ТекстовоеСодержимое; ИсточникВерсия = Узел.ПолучитьАтрибут("ВерсияКонфигурации"); ИсточникСиноним = Узел.ПолучитьАтрибут("СинонимКонфигурации"); ДатаВремяСозданияПравилОбмена = ПолучитьУзелДОМ(ДокументДОМ, "ДатаВремяСоздания").ТекстовоеСодержимое; И есть ссылка на правила обмена, а там точно черт ногу сломит. Что там хотя бы смотреть? Подскажите, а? |
|||
24
Злопчинский
15.08.13
✎
03:17
|
(23) Крепись, помощь - идет...
|
|||
25
Vladislava-smile
15.08.13
✎
03:23
|
Угу, да меня скоро главный бухгалтер с потрохами сожрет (( Страшненько как-то ... ))
|
|||
26
Злопчинский
15.08.13
✎
03:30
|
(25) а чего ты думаешь все гуру-1сники такие злые и некузявые - потому что вдребезги поперек искусанные все... их теперь даже вампиры боятся...
|
|||
27
Злопчинский
15.08.13
✎
03:31
|
и ваще - нужна фотка личности. а не каменной вазы..
"Что, не выходит каменный цветок..." "неееттт.. не выыыыходииит" |
|||
28
Vladislava-smile
15.08.13
✎
03:39
|
ооо, ну какая есть на флешке ) За не имением большого выбора как говорится ...
|
|||
29
Злопчинский
15.08.13
✎
04:06
|
вот то есть ни камеры на смартфоне, ни фотоаппарата дома, ни вебкамеры в скайпе - ничего нет.. вы там что, прикованы наручниками к батарее и текладу друкаете фингерами в текстовом режиме?
|
|||
30
Злопчинский
15.08.13
✎
04:07
|
- Ганна, та така... така.. як батарэя!
- Шо, така тэпла? - Та ни.. рэбрыста... |
|||
31
Cube
16.08.13
✎
05:13
|
||||
32
Vladislava-smile
16.08.13
✎
05:29
|
Cube, у меня пользователь сам выбирает в какой файл выгружать данные.
|
|||
33
Vladislava-smile
16.08.13
✎
05:39
|
Подскажите почему если я меняю в <ВерсияФормата>2.01</ВерсияФормата> на 2.02 допустим в апрвилах обмена, а в файле при выгрузке я все равно вижу 2.01?
|
|||
34
Cube
16.08.13
✎
05:55
|
(32) Ну так если очень внимательно вчитаться в (9), то можно узреть суть: "Ну и в выгрузке убрать возможность редактирования имени, а в загрузке добавить проверку по имени файла." :)
|
|||
35
Cube
16.08.13
✎
05:57
|
+(34) То есть, при выгрузке пользователь должен выбирать только каталог выгрузки.
|
|||
36
Vladislava-smile
16.08.13
✎
06:13
|
"убрать возможность редактирования имени" - не подходит, они сами называют его и по базам и по датам, кому что надо.
|
|||
37
Рэйв
16.08.13
✎
06:16
|
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу); Запись.ЗаписатьОбъявлениеXML(); Запись.ЗаписатьНачалоЭлемента("Корневой"); Запись.ЗаписатьАтрибут("Справочник", "Номенклатура"); Запись.ЗаписатьКомментарий("Краткая информация о номенклатуре"); Выборка = Справочники.Номенклатура.ВыбратьИерархически(); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; Запись.ЗаписатьНачалоЭлемента("Элемент"); Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код)); Запись.ЗаписатьАтрибут("Артикул", Строка(Выборка.Артикул)); Запись.ЗаписатьТекст(Выборка.Наименование); Запись.ЗаписатьКонецЭлемента(); КонецЦикла; Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); |
|||
38
Vladislava-smile
16.08.13
✎
06:26
|
Там не так сделано, в сообщении (23) мой код, во всей этой обработки нет функции Запись, Рейв, ваш пример как раз мне ясен, но ничего даже отдаленно похожего там нет.
|
|||
39
Vladislava-smile
16.08.13
✎
06:32
|
Там даже нигде нет функции ОбъявлениеXML.
|
|||
40
Рэйв
16.08.13
✎
06:33
|
(38)Я просто думал, что ты сама собираешь xml :-)
|
|||
41
Рэйв
16.08.13
✎
06:34
|
(38)Судя по коду (23) тебе надо смотреть на ТекстXML, где оно формируется
|
|||
42
Vladislava-smile
16.08.13
✎
06:34
|
Если бы ... эх. Мне надо доработать код, в котором черт голову сломит.
|
|||
43
Рэйв
16.08.13
✎
06:36
|
(42)Если не сама делаешь, то сделать первый тэг и прчитать его потом - это будет довольно напряжно.
Придется покопаться в обработке есть ли возможность передавать параметры с выгрузкой. |
|||
44
Рэйв
16.08.13
✎
06:37
|
на крайний случай ставь имя базы в имя файла и анализируй при открытии.
|
|||
45
Cube
16.08.13
✎
06:40
|
(44) Это эхо?))
|
|||
46
Cube
16.08.13
✎
06:42
|
(36) Формат имени согласуй с пользователями, чтобы всех устраивало.
Например: "Выгрузка " + [НазваниеОрганизации] + " от " + [ТекущаяДата] |
|||
47
Vladislava-smile
16.08.13
✎
06:44
|
Мне нужно сделать это программно внутри кода. Без вариантов к сожалению.
|
|||
48
Vladislava-smile
16.08.13
✎
06:45
|
То, что вы предлагаете - не вариант.
|
|||
49
Cube
16.08.13
✎
06:50
|
(47) (48) То что я предлагаю и надо делать "программно внутри кода". Почему не вариант?
|
|||
50
Рэйв
16.08.13
✎
06:51
|
(45)Да, наверное:-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |