Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
1.Не у всякого справочника есть поля Код и Наименование. "Длина кода"=0 - и нет такого поля. Но наименование в этом случае останется. 2. Опять же - хороший тон в том, чтобы все нужные поля достать запросом, без необходимости дергать потом объекты (что приводит к дополнительном обращению к базе, а то и не к одному): "ВЫБРАТЬ | УстановкаЦен.ТипЦен.Наименование как ТипЦенНаименование, а потом уже использовать НайтиПоНаименованию() для подбора нужного в базе-получателе. Хотя и тут можно запросом все нужное подобрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 15:40 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro,pail Огромное Спасибо! Поняла в чем ошибка, в результат запроса ни один документ не попадал .... сейчас заработало!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 16:07 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
А можно еще вопрос? Процедура правильно работает в случае с одним документом... а если документов несколько? Как правильно написать запрос, и как правильно потом достать результаты? "ВЫБРАТЬ | УстановкаЦен.Номер как Номер, | УстановкаЦен.Дата как Дата, | УстановкаЦен.ТипЦен.Код как ТипЦен, | УстановкаЦен.Товары.Номенклатура.Наименование как Номенклатура, | УстановкаЦен.Товары.Цена как Цена, | УстановкаЦен.Товары.Валюта.Наименование как Валюта |ИЗ | Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен | СГРУППИРОВАТЬ ПО | УстановкаЦен.Номер, | УстановкаЦен.Товары.Номенклатура"; Если делаю так, выгружаю, то не совсем понятно как создать несколько документов в новой базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 16:20 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SV, "ВЫБРАТЬ | УстановкаЦен.Номер как Номер, | УстановкаЦен.Дата как Дата, | УстановкаЦен.ТипЦен.Код как ТипЦен, | УстановкаЦен.Товары.(Номенклатура.Наименование как Номенклатура, | Цена как Цена, | Валюта.Наименование как Валюта) КАК Товары |ИЗ | Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен | ГДЕ ....................................... |"; Товары - будет результатом вложенного запроса,что больше соответствует структуре и источника, и получателя - на верхнем уровне результата запроса будет столько строк,сколько документов попадет в выборку, и в поле Товары каждой строки будет таблица, соответствующая табличной части документа. А вот какие документы в выборку попадут, и сколько их там будет - определяется условием ГДЕ запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 16:43 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
pail, Спасибо! Все получилось! Выкладываю код, вдруг таким же новичкам как я пригодится ))) Запрос = trade.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | УстановкаЦен.Номер как Номер, | УстановкаЦен.Дата как Дата, | УстановкаЦен.ТипЦен.Код как ТипЦен, | УстановкаЦен.Товары.(Номенклатура.Наименование как Номенклатура, | Цена как Цена, | Валюта.Наименование как Валюта) КАК Товары |ИЗ | Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен"; Результат = Запрос.Выполнить().Выгрузить(); Для каждого стр из Результат Цикл НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НовыйДокумент.Дата = стр.Дата; НовыйДокумент.Номер = стр.Номер; СпрТипЦен= Справочники.ТипыЦенНоменклатуры.найтипокоду(стр.ТипЦен); Если СпрТипЦен <> Неопределено Тогда НовыйДокумент.ТипЦен = СпрТипЦен; Иначе сообщить("Не найден тип цен "+стр.типцен); КонецЕсли; Для каждого строка из стр.Товары Цикл СтрокаДокумента = НовыйДокумент.Товары.Добавить(); СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(строка.Номенклатура); Если СпрНом <> Неопределено Тогда СтрокаДокумента.Номенклатура = СпрНом; Иначе сообщить("Не найдена номенклатура для "+строка.Номенклатура); КонецЕсли; СтрокаДокумента.Цена = строка.Цена; СпрВал = Справочники.Валюты.НайтиПоНаименованию(строка.Валюта); Если СпрВал <> Неопределено Тогда СтрокаДокумента.Валюта = СпрВал; Иначе сообщить("Не найдена номенклатура для "+строка.Валюта); КонецЕсли; КонецЦикла; НовыйДокумент.Записать(); КонецЦикла; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 17:04 |
|
||
|
|

start [/forum/topic.php?fid=28&gotonew=1&tid=1520986]: |
0ms |
get settings: |
16ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
16ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 387ms |

| 0 / 0 |
