Имя: Пароль:
1C
1С v8
КД2: Несколько документов в один
,
0 Mikhail Volkov
 
18.04.17
19:22
Делится организация, из нее выделяется новая. Учет велся КА. Передаваемые склады старой организации просто списали документами Списания товаров по каждому складу свой. В новой организации решили вести учет в БП3.0, создали Ввод остатков товара, заполнили шапку. Хотят, чтобы списанный в КА товар заполнился в табличной части этого документа.
В КД2 написал правило конвертации из ДокументСсылка.СписаниеТоваров КА в ДокументСсылка.ВводНачальныхОстатков БП, и только для табличных частей Товары КА в НоменклатураНаСкладе БП. Все отобранные Списания товаров КА нужно перенести в один Ввод остатков товара. Его GUID знаю, номер, дату, шапка уже заполнена. В КД2 для своего правила галку "Искать объект приемника по внутреннему..." снял. Как указать, чтобы по данному правилу все отобранные списания товаров КА выгружались именно в один Ввод остатков товара БП?
1 2083
 
18.04.17
19:31
(0) ну самое простейшее - это написать в приемник е в документе какой-нибудь комментарий, а в КД гвоздем забивать его в значение и по нему поиск.

другой момент, а зачем собирать все документы по отдельности? можно же запросом собрать в ПВД нужную структуру данных и выгрузить ее по ПКО для документа ВВод нач остатков.
В ПКО будет только приемник, без источника. В ПВД можно формировать выборку или структуру или как еще вздумается.
2 mistеr
 
18.04.17
19:45
(1) Искать лучше по номеру.
3 2083
 
18.04.17
19:47
(2) да хоть и по номеру... привык, что как правило в приемнике документов нет и номера генерируются автоматом...
4 Mikhail Volkov
 
18.04.17
19:50
(1) Конвертировать какой-то один общий реквизит шапки (например, дата, комментарий заполнен по разному), и по нему поиск? Для этого восстановить галку "Искать объект приемника по внутреннему...", и поставить еще "Продолжить поиск по полям поиска..."?
Не сразу увидел, что списаний несколько, и суммы списания по товарам не хранятся в документах, вычислять надо.
5 2083
 
18.04.17
19:55
(0) зачем по ИД? просто по реквизиту: номер. комментарий, дата, да все что угодно, лишь бы было уникально.

в ПКО ставишь поиск по этому реквизиту в обработчике ПередВыгрузкой ставишь Значение этого реквизита гвоздем как в приемнике, например

Значение = "##ПереносОстатков##Товары на складе 1## ООО Рога и Копыта";
6 mistеr
 
18.04.17
19:58
(4) Создаешь параметр НомерДокументаВводаОстатков, и из него заполняешь номер. По внутреннему идентификатору, разумеется, не нужно.

Суммы не вычислять нужно, а брать из движений.

Всё это в ПВД.
7 Mikhail Volkov
 
18.04.17
20:27
(6) Без "Искать объект приемника по внутреннему..." не поставить галку "Продолжить поиск по полям поиска..."
8 mistеr
 
18.04.17
20:36
(7) Они обе не нужны.
9 Mikhail Volkov
 
19.04.17
03:49
(8) ОК, обе убрал. Добавил ПКС Номер, ему поставил галку поиска, в обработчик "Перед выгрузкой" написал:
Значение = "УА00-000001";
Это номер Ввод остатков (Товары) БП. Так?
10 Wit77
 
19.04.17
06:19
(9) Все не так. У вас подход в корне неправильный. В (1) написали как нужно. Делаете ПВД без источника и в момент выгрузки собираете по всем нужным документам данные, формируете таблицу и передаете в качестве источника в ПВД, где приемник - это документ "Ввод начальных остатков". Таким образом у вас в хмл-файле сразу сформируется один документ, который и будет загружен в приемник.

Зачем лишний огород городить с какими-то поисками?
11 Mikhail Volkov
 
19.04.17
07:29
(10) Уже объяснял в (4) почему так начал. Главное из-за того, что суммы списания по товарам не хранятся в документах, вычислять надо (и НДС). Использовал готовые функции КА, они берутся из движений по документу в целом:
ТабДвижений = УправлениеЗапасами.ПолучитьТаблицуЗатратДляПечатиИЗаполненияДокументов(Источник, ТекстЗапроса, СтруктраПараметров);
Вместо этого свое писать?
Не, справочники: номенклатура и склады классно перенеслись! А сам документ пустой!? Понял бы, если табличная часть заполнилась только товарами из последнего списания - она переписывается, а не добавляется. Но пусто!? Хотя создались еще 4 пустые (!?) документа с этим номером и сегодняшней датой. Видать одного номера мало, еще дата нужна.
А как сделать, чтобы товар добавлялся, не перезаписывался?
12 azt-yur
 
19.04.17
07:37
(11) если тяжело или лень делать как в (10), то что мешает перенести каждый документ списания в отдельный документ ввода начальных остатков?
По полям поиска описали в (5)
13 Wit77
 
19.04.17
07:39
(11) ну так кто мешает вызвать готовые функции, и собрать движения в таблицу и ее передать как исходную для одного документа. Не важно как вы начали - вы не до конца понимаете логику работы КД.
(12) Ну или так. :) Тоже не понимаю зачем именно в один документ переносить.
14 Wit77
 
19.04.17
07:42
(11) кстати! как вы верно заметили - у вас нет сумм в документах. Вам в принципе нужно собирать движения документов списания и по ним формировать таблицу данных для выгрузки. Не надо вообще сами документы списания трогать.
15 Mikhail Volkov
 
19.04.17
08:48
(12) Еще добавил поиск по дате - все нормально:
Документ 'Ввод остатков УА00-000001 от 13.03.2017 23:00:04' найден 377 товаров
Это только одно списание загрузил, товары на месте. Можно и отдельными, но я это делаю не в реальной базе. Та БП3.0 еще пустая даже организацию не ввели, сказали, что без НДС (видимо ЕНВД)и УСН. Хотел демку БП брать, там "Ромашка" есть ЕНВД + УСН, для нее Ввод остатков товара сделать, и через ВыгрузкаЗагрузкаДанныхXML83.epf в реальную базу перекинуть, пусть "Ромашку" переименовывают. После все же нашли рабочую базу такой же организации, с нужными настройками. В ней делаю. Не хотелось много документов после перекидывать.
Придумаю что нибудь...
16 Mikhail Volkov
 
19.04.17
09:07
Тут еще беда - прежний бухгалтер не работала с УСН, не знает что такое "Отражение в УСН" и "Состояние расхода", говорит у всех товаров НДС обнулить. Мне конечно легче НДС не считать, но приходилось с УСН сталкиваться:
Была на обслуживании АК Интеркомпания: ООО - закупала, ИП - продавала без НДС. Авто запчастями торговали, после автосервис появился - масла разные, ГСМ. А это вроде нельзя по ЕНДВ продавать. Перевели ИП на смешанную систему УСН + ЕНВД. Если без НДС нельзя, то "Отражение в УСН" - принимается. Правильно я понимаю?
17 Mikhail Volkov
 
19.04.17
10:05
Еще, если валюта "руб", валютные суммы нужны во вводе остатков (приравненные к обычным)?
18 Mikhail Volkov
 
19.04.17
12:25
Ладно, ломать не стоить - сами уберут НДС, где не надо (обнулять - не рассчитывать). ПКО после загрузки:

Для каждого СтрокаТЧ Из Объект.НоменклатураНаСкладе Цикл
    СтрокаТЧ.Партия                        = Документы.ПередачаТоваров.НайтиПоНомеру("УА00-000006", '20150101000000');
    СтрокаТЧ.СтатусыОплатыРасходовУСН    = Перечисления.СтатусыРасходовУСН.НеСписано;
    СтрокаТЧ.ОтражениеВУСН                = Перечисления.ОтражениеВУСН.Принимаются;
    СтрокаТЧ.Валюта                        = Справочники.Валюты.НайтиПоКоду("643");              
    СтрокаТЧ.ВалютнаяСумма                = СтрокаТЧ.Сумма;              
    СтрокаТЧ.ВалютныйНДС                = СтрокаТЧ.НДС;              
    СтрокаТЧ.НДСВключенВстоимость        = Истина;              
КонецЦикла;
Добавлено = Объект.НоменклатураНаСкладе.Количество();

Если Не ОбъектНайден Тогда
    Отказ = Истина;
ИначеЕсли Объект.Ссылка.НоменклатураНаСкладе.Количество() > 0 Тогда
    Для каждого СтрокаТЧ Из Объект.Ссылка.НоменклатураНаСкладе Цикл
        НоваяСтрока = Объект.НоменклатураНаСкладе.Добавить();
        НоваяСтрока.СчетУчета                 = СтрокаТЧ.СчетУчета;
        НоваяСтрока.Номенклатура             = СтрокаТЧ.Номенклатура;
        НоваяСтрока.Склад                     = СтрокаТЧ.Склад;
        НоваяСтрока.Партия                     = СтрокаТЧ.Партия;
        НоваяСтрока.Количество                 = СтрокаТЧ.Количество;
        НоваяСтрока.Сумма                     = СтрокаТЧ.Сумма;
        НоваяСтрока.ОтражениеВУСН             = СтрокаТЧ.ОтражениеВУСН;
        НоваяСтрока.СтатусыОплатыРасходовУСН = СтрокаТЧ.СтатусыОплатыРасходовУСН;
        НоваяСтрока.Номенклатура             = СтрокаТЧ.Номенклатура;
        НоваяСтрока.Валюта                     = СтрокаТЧ.Валюта;
        НоваяСтрока.НДС                         = СтрокаТЧ.НДС;
        НоваяСтрока.НДСВключенВстоимость     = СтрокаТЧ.НДСВключенВстоимость;
        НоваяСтрока.ВалютнаяСумма             = СтрокаТЧ.ВалютнаяСумма;
        НоваяСтрока.ВалютныйНДС                 = СтрокаТЧ.ВалютныйНДС;
        НоваяСтрока.СтавкаНДС                 = СтрокаТЧ.СтавкаНДС;
    КонецЦикла;
КонецЕсли;
Сообщить("Документ '" + СокрЛП(Объект) + "' " + ?(ОбъектНайден, "", "не ") + "найден, добавлено: " + Добавлено + " товаров, всего: " + Объект.НоменклатураНаСкладе.Количество(), СтатусСообщения.Информация);

Всем спс за помощь.