![]() |
|
Модераторы: stron |
![]()
|
|
| Guitar_Player |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2007 Где: г.Новосибирск Репутация: нет Всего: нет |
Я только учусь 1С.Раньше писал вот так для выгрузки реквизита табличной части документа в файл.
Человек который проверял задание сказал отказаться от использования индекса атрибутов(если хотим загрузить в идентичную базу, с той лишь разницей, что в метаданных поменяли местами реквизиты, счетчик собъется и загрузка будет не верна).
А как значения табличной части выгружать не через "ВыгрузитьТабличнуюЧасть(ТЗ)", а через обход метаданных? |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
|
|||
|
||||
| Guitar_Player |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2007 Где: г.Новосибирск Репутация: нет Всего: нет |
Можешь объяснить эту строку? У функции ПолучитьАтрибут же 1 параметр. Что за второй? Это сообщение отредактировал(а) Guitar_Player - 22.2.2008, 19:29 |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Ты прав, это я с чем-то другим перепутал
ДокументДляВыгрузки.ПолучитьАтрибут(ИдентификаторКолонки) |
|||
|
||||
| Guitar_Player |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2007 Где: г.Новосибирск Репутация: нет Всего: нет |
А что такое тип реквизита? Мне написали по каждому реквизиту выгружать идентификатор, название, тип, а восстанавливать по имени, типу и ссылочной информации или значению для примитивного типа реквизита.
|
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
ТипРеквизита = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(К).Тип
Примитивный тип - это "строка", "число" и "дата" (наверное это имелось в виду) |
|||
|
||||
| Guitar_Player |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2007 Где: г.Новосибирск Репутация: нет Всего: нет |
В задании написанно вот так:
По каждому реквизиты выгражать идентификатор(код либо наименование по которому найти значение в базе ), тип и название реквизита. При загрузке реализовать правильное восстановление данных по имени реквизита, типу и ссылочной информации или значения(в случае примитивного типа реквизита). ================== Т.е. Тип и название тоже обязательно сохранять в файл, а потом при загрузки присваивать? В Файл мы сохраняем идентификатор, значение, тип, название. Так? |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Идентификатор и имя реквизита - это одно и тоже
Я помнб раньше, до xml была универсальная обработка для выгрузки и загрузки документов и справочников из текстового файла... в нем каждый выгружаемый объект был представлен следующим образом:
и т.д. - так вот первое - это идентификатор реквизита - далее в скобках его тип, в том случае, если реквизит простой - строка, число, дата после # - значение либо ссылка на ранее описанный объект. Знак вопроса перед реквизитом - означал, что по этому реквизиту необходимо произвести поиск, и, в случае отсутсвия соответствующего объекта (документа либо справочника) - необходимо создать новый. В том случае, если есть несколько знаков ? проверяется совпадение сразу нескольких условий. |
|||
|
||||
| Guitar_Player |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2007 Где: г.Новосибирск Репутация: нет Всего: нет |
Ну я впринципе разобрался че к чему. Спасибо огромное.
Можно еще вопросик: Как из типа строка получить тип Справочник.Сотрудник. Т.е. как преобразовать к типу? |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Никак - прямого преобразования нет, но если строка - это ФИО сотрудника, то воспользоваться методом НайтиПоНаименованию
|
|||
|
||||
| Guitar_Player |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2007 Где: г.Новосибирск Репутация: нет Всего: нет |
А как в общем случае. Т.е. я загружаю многострочную часть документа(тип, идентификатор,значение) в виде строк. И как мне эти атрибуты задать.
|
|||
|
||||
| Itsys |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Общих случаев быть не может.
При загрузке ты должен написать обработчик, который разбирает строку по пунктам - допустим находит первую Строку:
Соответсвенно, в справочнике "Сторудники" ищется элемент с наименованием "Петров" - далее, если он не найден - создается новый. После ссылка на него кидается в какой-нибудь Список значений: Спис.Установить("Справочник_Сотрудники 1", Спр.ТекущийЭлемент()) Долее потихоньку ты подходишь к строке с данными о табличной части документа, допустим у тебя в выгружаемом документе Поля следуют следующим образом: Сотрудник-Оклад-Коэффициент, а в загружаемой - Сотрудник-Коэф-Оклад Соответсвенно есть строка выгрузки:
Ты ее начинаешь разбирать - первый реквизит - Сотрудник - производишь поиск по реквизитам документа в загружаемой базе - нахоишь такой реквизит - проверяешь, что тип соответсвует - если соответвует, то в ячейку табличной части берешь значение из созданного товой Списка значений - Спис.Получить("Справочник_Сотрудники 1"), идем дальше - реквизит оклад - опять ище опять находим - но не на свем месте - проверяем тип - если все ок - ставим, следующий реквизит - Коэффициент - такого в загружаемой базе нет - а дальше - как договоритесь - либо это поле остается пустым, либо определяем, что все поля кроме Коэф уже загружены - т.е. одно значение надо загрузить - и одно поле пустое - скорее всего это оно и устанвливаем туда занчение Коэффициента. Уфф ВСЕ. |
||||
|
|||||
![]()
|
| Правила форума "1C: Предприятие, SAP, ERP и учётные системы" | |
|
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |