Имя: Пароль:
1C
1С v8
правило конвертации
,
0 dreamoff
 
11.03.12
13:30
необходимо из одной базы выгрузить остатки в другую.есть правила обмена и в них нужно добавить выгрузку остатков.но нужных документов ни в источниках, ни в приемниках там нет.как их добавить,подскажите?
1 acsent
 
11.03.12
13:32
документ корректировка регистров есть?
2 dreamoff
 
11.03.12
13:40
(1) корректировка записей регистров,он?
3 dreamoff
 
11.03.12
13:43
если использовать корректировку,то ведь создадутся движения по регистрам,без создания документов ввода начальных остатков или я не прав?
4 Абыр
 
11.03.12
13:46
(3) сложно ответить, так как неизвестно, что подразумевается под "документы ввода начальных остатков". ими вполне могут быть документы "корректировка записей регистров"
5 Alex S D
 
11.03.12
13:48
хоть бы конфы озвучил чтоли
6 dreamoff
 
11.03.12
13:51
(4)извиняюсь,за неточность.ввод остатков осуществляется док-том "оприходование товаров" с операцией "ввод начальных остатков"
7 dreamoff
 
11.03.12
13:52
(5) я первый день на этом месте,могу допускать неточности
8 NDN
 
11.03.12
13:53
9 dreamoff
 
11.03.12
13:55
(8) а если мне нужно именно с созданием док-тов оприходования?
10 dreamoff
 
11.03.12
14:08
ап
11 Omskdizel
 
11.03.12
14:16
Конфы назови. Телепатией тут мало кто балуется. И вообще, расскажи, на кой тебе именно документы оприходования? Или чем тебе корректировка регистров не документ оприходования?
12 dreamoff
 
11.03.12
14:22
(11)сори)
из конф-ции далион (лично я сам первый раз такую вижу) необходимо выгрузить остатки в комплексную автоматизацию
13 acsent
 
11.03.12
14:23
загрузи конфы в кд еще раз
14 Omskdizel
 
11.03.12
14:23
(12) Ну теперь отвечай на два вопроса в (11)
15 dreamoff
 
11.03.12
14:24
сказали,что нужно собрать документы оприходования из далион и загрузить в комплексную, как док-ты оприходование с операцией "ввод начальных остатков". если честно,что я не знаю,как лучше сделать
16 Alex S D
 
11.03.12
14:30
если с кд не дружишь, то напиши обработку переноса сам, через ексель или дбф)
17 Omskdizel
 
11.03.12
14:33
(15) Ну в общем-то вполне стандартная задача. В (16) подробно объяснили что к чему. кд - это Конвертация данных имеется ввиду. Рисуется план обмена и вперед. Как вариант можно кидать данные через Excel, dbf, txt  и вообще чего на ум взбредет. Но тут надо навыки программиста. Если вы не программист, очень советую позвать программиста, а то этот перенос еще долго вам аукаться будет.
18 dreamoff
 
11.03.12
14:34
(17) так надо учиться дружбе с кд,мне еще долго с ней работать
19 dreamoff
 
11.03.12
14:37
(17) обработку то я напишу,но вот как это через кд сделать,когда правила уже есть и  их нужно изменить?
20 Alex S D
 
11.03.12
14:38
(18) если есть время, то вперед, изучай, пример тебе дали, можешь еще книжку по КД почитать, не помню как называется.. но она есть
21 NDN
 
11.03.12
14:38
Ну начни с чего-нибудь.
А по мере возникновения конкретных вопросов будут давать конкретные ответы :)
22 dreamoff
 
11.03.12
14:41
(20) пример я почитал и с корректировкой все более или менее понятно
(21) вот я и задал вопрос, как добавить источник/приемник в существующее правила?
23 dreamoff
 
12.03.12
08:50
подскажите,где нужно писать условия,что бы отбирались док-ты соответствующие условию?
24 dreamoff
 
12.03.12
08:56
нужно прописывать условие в обработчике конвертации передзагрузкой или в другом месте?
25 cw014
 
12.03.12
09:15
Сколько дашь за работу с этим добром? :)
26 patapum
 
12.03.12
09:20
для начала.
тебе надо правило конвертации без источника с приемником. то есть источник ты оставляешь пустым, а приемник заполняешь. правила конвертации свойств - так же
в правиле выгрузки ты указываешь способ выборки Произвольный алгоритм
в его обработчике Перед обработкой пишешь алгоритм заполнения таблицы значений, ее подсовываешь в переменную Выборка данных. На один документ - одна строка таблицы. в качестве реквизитов строки таблицы могут быть таблицы значений - они станут таб. частями.
пример обработчика
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
              |    Событие.Ссылка КАК Событие,
              |    КонтактнаяИнформация.Представление КАК Адрес
              |ИЗ
              |    Документ.Событие КАК Событие
              |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
              |        ПО (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
              |            И (Событие.Контрагент = КонтактнаяИнформация.Объект
              |                ИЛИ Событие.КонтактноеЛицо = КонтактнаяИнформация.Объект)
              |ГДЕ
              |    Событие.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ЭлектронноеПисьмо)
              |    И Событие.ТипСобытия = ЗНАЧЕНИЕ(Перечисление.ВходящееИсходящееСобытие.Исходящее)
              |    И Событие.Дата > ДАТАВРЕМЯ(2012, 1, 1, 0, 0, 0)
              |    И Событие.Дата < ДАТАВРЕМЯ(2012, 1, 31, 0, 0, 0)
              |ИТОГИ ПО
              |    Событие";
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ТаблицаДанные = Новый ТаблицаЗначений;
ТаблицаДанные.Колонки.Добавить("Номер", Новый ОписаниеТипов("Строка"));
ТаблицаДанные.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
ТаблицаДанные.Колонки.Добавить("ПометкаУдаления", Новый ОписаниеТипов("Булево"));
ТаблицаДанные.Колонки.Добавить("Ответственный", Новый ОписаниеТипов("СправочникСсылка.Пользователи"));
ТаблицаДанные.Колонки.Добавить("Автор", Новый ОписаниеТипов("СправочникСсылка.Пользователи"));
ТаблицаДанные.Колонки.Добавить("Тема", Новый ОписаниеТипов("Строка"));
ТаблицаДанные.Колонки.Добавить("Текст", Новый ОписаниеТипов("Строка"));
ТаблицаДанные.Колонки.Добавить("СписокПолучателейПисьма", Новый ОписаниеТипов("Строка"));
ТаблицаДанные.Колонки.Добавить("ПолучателиПисьма", Новый ОписаниеТипов("ТаблицаЗначений"));
Пока Выборка.Следующий() Цикл
   
   ТаблицаПолучателиПисьма = Новый ТаблицаЗначений;
   ТаблицаПолучателиПисьма.Колонки.Добавить("Контакт", Новый ОписаниеТипов("СправочникСсылка.КонтактныеЛица"));
   ТаблицаПолучателиПисьма.Колонки.Добавить("Адрес", Новый ОписаниеТипов("Строка"));
   ТаблицаПолучателиПисьма.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
   
   НоваяСтрокаДанные = ТаблицаДанные.Добавить();
   НоваяСтрокаДанные.Номер = Выборка.Событие.Номер;
   НоваяСтрокаДанные.Дата = Выборка.Событие.Дата;
   НоваяСтрокаДанные.ПометкаУдаления = Выборка.Событие.ПометкаУдаления;
   НоваяСтрокаДанные.Текст = Выборка.Событие.СодержаниеСобытия;
   НоваяСтрокаДанные.Автор = Выборка.Событие.Ответственный;
   НоваяСтрокаДанные.Ответственный = Выборка.Событие.Ответственный;
   Попытка
       НоваяСтрокаДанные.Тема = Выборка.Событие.ОписаниеСобытия.Наименование;
   Исключение
   КонецПопытки;
   
   НоваяСтрокаКонтакт = ТаблицаПолучателиПисьма.Добавить();
   НоваяСтрокаКонтакт.Контакт = Выборка.Событие.КонтактноеЛицо;
   Попытка
       НоваяСтрокаКонтакт.Представление = Выборка.Событие.КонтактноеЛицо.Наименование + ", " +
                       Выборка.Событие.Контрагент.Наименование;
   Исключение
   КонецПопытки;
   ВыборкаДетальные = Выборка.Выбрать();
   Адреса = "";
   Пока ВыборкаДетальные.Следующий() Цикл
       Адреса = Адреса + ?(Адреса = "", "", ", ") + ВыборкаДетальные.Адрес;
   КонецЦикла;
   НоваяСтрокаКонтакт.Адрес = Адреса;
   
   НоваяСтрокаДанные.ПолучателиПисьма = ТаблицаПолучателиПисьма;
   НоваяСтрокаДанные.СписокПолучателейПисьма = Адреса;

КонецЦикла;
ВыборкаДанных = ТаблицаДанные;
27 Man4kin
 
12.03.12
09:23
(24) почитай книжку лучше сначало по конвертации
28 dreamoff
 
12.03.12
09:31
(26) спасибо,буду разбираться )
29 dreamoff
 
12.03.12
11:26
еще вопрос.а как сделать,что бы в приемник при загрузке загружались не все строки тч,а только те,которые соответствуют условию?
30 dreamoff
 
16.03.12
10:13
помогите,не могу понять как сделать.сделал алгоритм как в (26),установил в ПКО приемник без источника.установил правила конвертации.но есть маленькая проблемка.номенклатура из кон-ции далион синхронизирована с комплексной по КодВыгрузкиКА и по Код77 в самой комплексной. в пко номенклатуры поставил поиск по КодВыгрузкиКА. но в xml выгружается сам объект,а не КодВыгрузкиКА. как прописать правильно,а то номенклатура не выгружается.надеюсь понятно объяснил)
31 patapum
 
16.03.12
10:23
в 77 реквизит код выгрузки КА есть?
32 patapum
 
16.03.12
10:24
если есть, делай поиск по нему. если нет, сначала его туда принеси
33 dreamoff
 
16.03.12
10:27
кодВыгрузкиКА соответствует код77
34 patapum
 
16.03.12
10:29
в ПКО номенклатуры снимаешь поиск по идентификатору, ставишь галку поле поиска для Код77 -> КодВыгрузкиКА
35 dreamoff
 
16.03.12
11:18
спасибо.попробую
36 dreamoff
 
19.03.12
08:57
подскажи,где нужно и как прописать условия,что бы в тч выгружались строки удовлетворяющие этому условию?и кто то у меня книгу по конвертации со стола увел,зсранцы(((
37 dreamoff
 
19.03.12
09:02
ап
38 Лирик
 
19.03.12
09:03
(36) У групп ПКС тоже есть обработчики
39 dreamoff
 
19.03.12
09:19
не совсем могу понять,как в ПКГС проверять строку тч
вот эта конструкция неправильная
Если Источник.Товары.Количество-Источник.Товары.КоличествоУчет<=0 тогда
Отказ=Истина;
КонецЕсли;

а как правильно?
40 Лирик
 
19.03.12
09:25
Если ОбъектКоллекции.Количество-ОбъектКоллекции.КоличествоУчет<=0 тогда
Отказ=Истина;
КонецЕсли;

Обработчик "ПередВыгрузкой"
41 dreamoff
 
19.03.12
09:29
как я понимаю,в данном случае источник-документ,а ОбъектКоллекции-тч?
42 Лирик
 
19.03.12
09:30
(41) Это строка ТЧ
43 Лирик
 
19.03.12
09:31
Вся ТЧ доступна как "КоллекцияОбъектов" в обработчике "ПередОбработкой"
44 dreamoff
 
19.03.12
09:33
понятно.спасибо большое
45 dreamoff
 
19.03.12
13:26
еще один вопросик.как выгрузить остатки по нескольким складам,т.е. каждый склад отдельным документом?
46 dreamoff
 
19.03.12
13:39
ап
47 fisher
 
19.03.12
13:52
(45) Методика как в (26)
В ПВД с помощью молотка, топора и такой-то матери вручную мастыришь образы нужных тебе документов.
В итоге каждая строчка коллекции "ВыборкаДанных" должна содержать данные по каждому нужному тебе документу. Дальше КД уже сама их скормит указанному ПКО по одной, создавая документы. Реквизиты шапки должны быть в одноименных колонках, а табличные части - во вложенных коллекциях также в одноименных колонках.
48 dreamoff
 
19.03.12
13:58
(47) т.е. отличие от (26) в том,что каждая строка-это док-т,а все остальное как там?
49 fisher
 
19.03.12
14:01
(48) В (26) тоже. Каждый элемент коллекции ВыборкаДанных выгружается как отдельный объект.
"ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически"
50 fisher
 
19.03.12
14:06
(49) + в (26) насколько я могу судить, каждое событие источника вида "ЭлектронноеПисьмо" выгружается в соответствующий специализированный документ для отправки писем в базе-приемнике. Обрати внимание на
"НоваяСтрокаДанные.ПолучателиПисьма = ТаблицаПолучателиПисьма"
Это как раз заполнение табличной части этих документов.
51 dreamoff
 
19.03.12
14:15
(50) понял.спасибо большое
52 dreamoff
 
28.03.12
07:59
еще один вопрос.как выгрузить 1 документ в 2? например,нужно инвентаризацию выгрузить либо в оприходование, либо в списание
53 dreamoff
 
28.03.12
08:16
апп
54 dreamoff
 
28.03.12
08:39
1
55 dreamoff
 
28.03.12
09:51
2
56 fisher
 
28.03.12
10:25
В ПВД в "Перед выгрузкой"
"ИмяПКО - Строка. Имя правила конвертации объектов, указанное по умолчанию в правиле выгрузки данных. При выгрузке конкретных объектов может быть изменено"
57 fisher
 
28.03.12
10:32
А если 1 одновременно в 2 надо, тогда в стандартном ПВД в "Перед выгрузкой" ставишь отказ от стандартной и выгружаешь через ВыгрузитьПоПравилу() там же.