Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как правильно читать "счета фактур"          
swordholder Подменю пользователя
сообщение 04.05.11, 15:38
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Есть у меня в 1С пункт "Счета-фактуры" в меню "Журналы"
Как прочитать все данные из "счетов фактур" на C# .NET используя OLE. Местоположение данных:"Журналы"->"Счета-фактуры выданные".

Версия 1C: 7.7
База: МСФО
Тип базы: dBase

Type t = null;
            Object obj = null;    // Ссылка на COM сервер 1С
            Object objVal = null; // Ссылка на документ в базе
            Object objDoc = null; // Ссылка на объект документ
            Boolean OK = false;
            string userCatPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            object v77 = null;
            object retVal = null;

            try
            {
                t = Type.GetTypeFromProgID(txtApplication.Text);
                obj = System.Activator.CreateInstance(t);

                Object[] arg = new Object[3];
                arg[0] = obj.GetType().InvokeMember(@"RMTrade", BindingFlags.Public | BindingFlags.InvokeMethod, null,obj, null);
                arg[1] = @"/d" + txtDbPath.Text + @" /n /p";

                OK = (Boolean)obj.GetType().InvokeMember(@"Initialize", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, obj, arg);

                if (!OK)
                {
                    MessageBox.Show("Не удалось соедениться с программой 1C ","Ошибка !!!", MessageBoxButtons.OK,MessageBoxIcon.Error);
                    return;
                }

                arg = new Object[1];
                arg[0] = @"Журналы.Счета-фактуры выданные";

              //вот здесь выдает ошибку, unknown element не распознает "Журналы.Счета-фактуры выданные"
                object book = obj.GetType().InvokeMember(@"CreateObject",
                    BindingFlags.Public | BindingFlags.InvokeMethod, null, obj, arg);

                if (book == null)
                    Console.WriteLine(@"Ошибка создания счетов фактур");
                else
                {
                    book.GetType().InvokeMember(@"ПорядокКодов",
                        BindingFlags.Public | BindingFlags.InvokeMethod, null, book, null);

                    Double result = (Double)book.GetType().InvokeMember(@"ВыбратьЭлементы",
                        BindingFlags.Public | BindingFlags.InvokeMethod, null, book, null);

                    if (result == 1) OK = true; else OK = false;

                    if (OK)
                    {
                        result = 0;
                        Int32 counter = 0;

                        do
                        {
                            result = (Double)book.GetType().InvokeMember(@"ПолучитьЭлемент",
                            BindingFlags.Public | BindingFlags.InvokeMethod, null, book, null);

                            if (result == 1)
                            {
                                object element = book.GetType().InvokeMember(@"ТекущийЭлемент",
                                BindingFlags.Public | BindingFlags.InvokeMethod, null, book, null);

                                if (element != null)
                                {
                                    counter++;
                                    String name = (String)element.GetType().InvokeMember(@"Номер",
                                              BindingFlags.Public | BindingFlags.GetProperty, null, element, null);

                                   MessageBox.Show(counter.ToString() + @": " + name );

                                }
                            }
                        }
                        while (result == 1);
                    }
                }

            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
            finally
            {

                Marshal.Release(Marshal.GetIDispatchForObject(obj));
                Marshal.ReleaseComObject(obj);
                obj = null;
            }


Когда этим же самым путем вытаскиваю список Валют ("Справочники"->"Валюты") без проблем вытаскиваются. А вот счета фактур не распознается.

Ardi Подменю пользователя
сообщение 04.05.11, 16:46
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

выбратьДокументы
выбратьдокумент

arg[0] = @"Журналы.Счета-фактуры выданные"; - неправильно.
надо "Документы.ИмяДокументаВКонфигураторе"


book.GetType().InvokeMember(@"ПорядокКодов", BindingFlags.Public | BindingFlags.InvokeMethod, null, book, null); - лишнее.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 21:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!