Имя: Пароль:
IT
Админ
Проверка данных из 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 --&gt; Бухгалтерия Предприятия, редакция 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
Vladislava-smile сделай, как предложено в (9)

Фотка- незачет...
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)Да, наверное:-)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший