|
Конвертация | ☑ | ||
---|---|---|---|---|
0
Диля_Вин
02.03.14
✎
10:20
|
Всем привет и всех с Масленицей! Правила обмена УАТ ПРОФ документ путевой лист, в БП корп документ требование накладная .После долгих разборов с КД2 всё получилось,но ГБ через месяц отправила на переделку, аргументировав слишком большим потоком документов после обмена , получается каждый документ путевой лист грузится из Рарус УАТ в Бп в новый документ Требование накладная в месяц выходит от 500 до 800 документов.
Я так поняла , что нужна сортировка всех Путевых листов за месяц по Транспортному средству, Номенклатуре и маршрутам , и уже что получится загрузить в БП в Один Документ Требование накладная. Кто нибудь делал подобное(сортировку, группировку )в КД2? Подскажите пожалуйста если не затруднит! |
|||
1
Диля_Вин
02.03.14
✎
10:25
|
ПослеЗагрузки:
Если Объект.Материалы.Количество() = 0 тогда Отказ = Истина; Иначе Для Каждого СтрокаТабличнойЧасти Из Объект.Материалы Цикл Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(СтрокаТабличнойЧасти, "Материалы", Истина); Если Найти(СтрокаТабличнойЧасти.НоменклатурнаяГруппа.Наименование, "Инкассация") > 0 Тогда СтрокаТабличнойЧасти.СчетЗатрат = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; ИначеЕсли Найти(СтрокаТабличнойЧасти.НоменклатурнаяГруппа.Наименование, "Резервные фонды") > 0 Тогда СтрокаТабличнойЧасти.СчетЗатрат = ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы; //25 счет ИначеЕсли Найти(СтрокаТабличнойЧасти.НоменклатурнаяГруппа.Наименование, "Другие виды деятельности") > 0 Тогда СтрокаТабличнойЧасти.СчетЗатрат = ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы; //26 счет КонецЕсли; Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.НоменклатурнаяГруппа) И Найти(СтрокаТабличнойЧасти.НоменклатурнаяГруппа.Наименование, "Перевозка ценностей РФ ЦБ") > 0 Тогда СтрокаТабличнойЧасти.ПодразделениеЗатрат = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Резервные Фонды"); Иначе СтрокаТабличнойЧасти.ПодразделениеЗатрат = Объект.ПодразделениеОрганизации; КонецЕсли; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка ИЗ Справочник.Склады ГДЕ ПодразделениеОрганизации = &Подразделение"; Запрос.УстановитьПараметр("Подразделение", Объект.ПодразделениеОрганизации); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Объект.Склад = Выборка.Ссылка; КонецЕсли; КонецЕсли; |
|||
2
Мимохожий Однако
02.03.14
✎
10:33
|
Сделай обработку, которая кучу документов объединяет в один.
|
|||
3
Генератор
02.03.14
✎
11:16
|
я бы в правиле выгрузки поставил произвольный алгоритм и в обработчике написал бы запросом сбор данных за месяц в целом, выгружал бы с помощью ВыгрузитьПоПравилу сводные документы
|
|||
4
Диля_Вин
02.03.14
✎
11:17
|
Можно поподробнее, возможно эту обработку сделать в правилах или нет?
|
|||
5
Диля_Вин
02.03.14
✎
11:22
|
Генератор-спасибо, примерно поняла Алгоритм запроса попадался в КД..
|
|||
6
Диля_Вин
02.03.14
✎
11:25
|
Генератор,-это немного не поняла "выгружал бы с помощью ВыгрузитьПоПравилу сводные документы"
|
|||
7
Генератор
02.03.14
✎
11:29
|
для каждого документа делаешь структуру с заполненными полями и табличной частью. Выгружаешь уже структуру с помощью ВыгрузитьПоПравилу
|
|||
8
Диля_Вин
02.03.14
✎
17:47
|
Генератор : Оопс, ну вообщем поняла- примерно предполагала подобное .... , начала реализовывать это в КД ну попала в тупик , в любом случае спасибо! Буду дальше инфу о КД изучать.
|
|||
9
zak555
02.03.14
✎
17:57
|
(2) только нужно не забыть, что уже выгружено
|
|||
10
zak555
02.03.14
✎
18:03
|
(8) какой тупик ?
откройте книгу по КД там как раз есть Ваш пример |
|||
11
Диля_Вин
02.03.14
✎
18:23
|
zak555(10) Я поняла , у нас сейчас 23.20 , семья , дети ...Я то, что получилось почти неделю делала-без книг , все советы дельные -доберусь до работы начну , нет инета на рабочем месте -только с телефона , жалко, приходится только в вечернее по нашему время, дома спрашивать.
|
|||
12
zak555
02.03.14
✎
18:43
|
(11) например, есть в обмене из тис 9.2 в ут 10.3 пвд РезервыТоваров
Товары = СоздатьОбъект("ТаблицаЗначений"); Товары.НоваяКолонка("Номенклатура"); Товары.НоваяКолонка("Количество"); Товары.НоваяКолонка("ЕдиницаИзмерения"); Товары.НоваяКолонка("Коэффициент"); Товары.НоваяКолонка("НовоеРазмещение"); ДатаТА = ПолучитьДатуТА(); ДатаНач = ?((ПустоеЗначение(ДатаНачала) = 0) И (ДатаНачала < ДатаТА), ДатаНачала,ДатаТА); Организация = Параметры.ОрганизацияПоУмолчанию; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНач по ДатаНач; |ЮрЛицо = Регистр.РезервыТМЦ.Фирма.ЮрЛицо; |Номенклатура = Регистр.РезервыТМЦ.Номенклатура; |Склад = Регистр.РезервыТМЦ.Склад; |ДоговорПокупателя = Регистр.РезервыТМЦ.ДоговорПокупателя; |ЗаявкаПокупателя = Регистр.РезервыТМЦ.ЗаявкаПокупателя; |Количество = Регистр.РезервыТМЦ.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Группировка ЮрЛицо; |Группировка ДоговорПокупателя без групп; |Группировка ЗаявкаПокупателя; |Группировка Склад без групп; |Группировка Номенклатура без групп; |" + ?(Параметры.ВыгружатьВБазовую = 1,"Условие (ЮрЛицо = Организация);","") + " |"; Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2) = 1 Цикл Пока Запрос.Группировка(3) = 1 Цикл Пока Запрос.Группировка(4) = 1 Цикл Если ПустоеЗначение(Запрос.Склад)=1 Тогда Продолжить; КонецЕсли; Товары.УдалитьСтроки(); Пока Запрос.Группировка(5) = 1 Цикл Если Запрос.КоличествоКонОст > 0 Тогда Товары.НоваяСтрока(); Товары.Номенклатура = Запрос.Номенклатура; Товары.Количество = Запрос.КоличествоКонОст; Товары.ЕдиницаИзмерения = Запрос.Номенклатура.БазоваяЕдиница; Товары.Коэффициент = Запрос.Номенклатура.БазоваяЕдиница.Коэффициент; Товары.НовоеРазмещение = Запрос.Склад; КонецЕсли; КонецЦикла; Если Товары.КоличествоСтрок()>0 Тогда ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Организация", Запрос.ЮрЛицо); ИсходящиеДанные.Установить("Дата", ДатаНач); ИсходящиеДанные.Установить("Контрагент", Запрос.ДоговорПокупателя.Владелец); Ключ = "Заказ покупателя № " + СокрЛП(Запрос.ЗаявкаПокупателя.НомерДок) + " от " + Запрос.ЗаявкаПокупателя.ДатаДок; ИсходящиеДанные.Установить("Комментарий", Ключ); ИсходящиеДанные.Установить("Товары", Товары); ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "РезервированиеТоваров"); КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли; если отрыть пко РезервированиеТоваров, то можно увидеть, что у всех пкс стоит галка получать из входящих данных |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |