Имя: Пароль:
1C
1С v8
КД: перенос реализации из УТ8 в УСН77
0 tpmi
 
30.08.11
15:36
В восьмёрке реализации содержат и товары, и услуги. Соответственно, появляются документы с двумя табличными частями.
В семёрке у документа может быть только одна табличная часть.
Чтобы эту проблему разрешить, сделаны правила, которые делают из одной реализации две - с товарами и услугами, по отдельности.
Проблема при этом возникает такая: документы получают одинаковые номера и переписываются. Правила поиска по умолчанию - контрагент по ИНН и дата документа.
Если добавить поиск по номеру, и генерировать номер для второго документа (например, для услуг добавить в конец номера букву "У"), то документы переписываться перестают, но не находятся (естественно) документы, которые уже есть в семёрке, ибо у бухгалтеров другой набор документов и совсем другие номера.
Как можно поступить в такой ситуации?
1 nicxxx
 
30.08.11
15:48
это же очевидно - написать выгрузку табличной части как виртуальной, собирать одну т.ч. из двух. чего тут еще думать. примеры есть на инфостарте
2 Поручик
 
30.08.11
16:01
(0) Как бы намёк.
В ПКГС ПередОбработкой собирать КоллекцияОбъектов из двух ТЧ.
3 Поручик
 
30.08.11
16:02
В ПКГС Товары в обработчике ПередОбработкой собирать КоллекцияОбъектов из двух ТЧ.
4 tpmi
 
30.08.11
16:25
(3) Как именно собирать?
КоллекцияОбъектов = Источник.Товары; // даёт тип Документ табличная часть: Товары
Как теперь туда услуги записать?
5 tpmi
 
30.08.11
16:32
КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов = Источник.Товары.Скопировать();

и по одной добавить услуги

попробую так
6 tpmi
 
30.08.11
16:35
не получается, нет у табличной части такого метода. так что, воссоздавать структуру и по одной строки копировать что ли?
7 tpmi
 
30.08.11
16:47
В итоге делается так:

КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов = Источник.Товары.Выгрузить();
Услуги = Источник.Услуги.Выгрузить();

Для Каждого СтрокаИсходнойТаблицы Из Услуги Цикл
   НоваяСтрока = КоллекцияОбъектов.Добавить();
   ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаИсходнойТаблицы);
КонецЦикла;

Извините, что наспамил :-)
8 tpmi
 
31.08.11
10:45
Не совсем хорошо получилось. Позиции из таблицы услуг не получают нужный тип "Услуга".
В конвертации я убрал исходное поле, и генерирую табличную часть только через ПКГС, источником стоит пустота. В результате на выходе имею табличную часть с текстовыми описаниями, к которым не применяются правила. К тому же присутствует проблема несовпадения имен колонок :-)
Можно это как-то исправить, или надо вручную всё синхронизировать и применять правила?
9 nicxxx
 
31.08.11
10:49
http://infostart.ru/public/81147/
а что значит "проблема несовпадения имен колонок"?
10 tpmi
 
31.08.11
10:57
(9) Спасибо за ссылку, разбираюсь.
Проблема несовпадения имен заключается в том, что в табличных частях "Товары" и "Услуги" список колонок разный, и мой код это совсем не учитывает. Хотя вроде бы список колонок "Услуг" вкладывается в список колонок "Товаров".
11 nicxxx
 
31.08.11
11:08
ну так учитывай, иначе не заработает.
вот как можно установить флаг Услуга в номенклатуре в твоем случае:
в ПКС "Номенклатура" у табл части пишем в ПередВыгрузкой:

ИсходящиеДанные = СоздатьОБъект("СписокЗначений");
ИсходящиеДанные.ДобавитьЗначение(ОбъектКоллекции.Услуга,"Услуга");

а чтобы в коллекции появилось поле Услуга, надо в ПКС для табл части в обработчике "ПередОбработкой" написать:
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("Номенклатура");
КоллекцияОбъектов.НоваяКолонка("ЕдиницаИзмерения");
КоллекцияОбъектов.НоваяКолонка("Цена");
КоллекцияОбъектов.НоваяКолонка("Валюта");
КоллекцияОбъектов.НоваяКолонка("ТипЦен");
КоллекцияОбъектов.НоваяКолонка("Услуга");//вот это поле

ну и сам напишешь цикл заполнения, причем в цикле по Товарам колонка Услуга будет пустой, а в цикле по Услугам туда надо писать 1.

пример для 7.7, на язык 8 сам переводи
12 tpmi
 
31.08.11
11:57
Так не получится, потому что Услуга - свойство номенклатуры, в восьмёрке оно имеет тип "булево", а в семерке - ПеречислениеСсылка.ТипыНоменклатуры, в этом перечислении есть "Услуга".
13 nicxxx
 
31.08.11
13:55
проблема что ли... пиши идентификатор перечисления в коллекцию объектов, даже правила не надо создавать
14 tpmi
 
22.09.11
11:22
возникла проблема - при двух отгрузках в один день, нет возможности их различить, и обработка пишет документы поверх. как можно это победить?
15 tpmi
 
22.09.11
11:34
Суть: есть документы в бухгалтерии и документы в торговле. У них могут быть разные номера.
При переносе надо как-то отличать документы друг от друга - я придумал только идентификацию по дате и контрагенту; но в таком случае два документа от одного контрагента за один день перезаписываются.
16 tpmi
 
22.09.11
11:53
Вмешаться в правила поиска на стороне семерки (чтобы по сумме хотя бы сравнить) не получается - как быть?
17 nicxxx
 
24.09.11
14:29
пиши номер документа в комментарий, и ищи потом с учетом комментария
Закон Брукера: Даже маленькая практика стоит большой теории.