Имя: Пароль:
1C
1С v8
УниверсальныйОбменДаннымиВФорматеXML.epf
0 LivingStar
 
10.07.13
13:35
Задача в следующем. Производится обмен данными из УТ в БП по средствам обработки УниверсальныйОбменДаннымиВФорматеXML.epf. При загрузке в БП документы РеализацияТоваровУслуг не содержат счетов в табличной части. Это приходится обрабатывать дополнительно или проставлять вручную. В табличной части должны быть заполненны колонки: СчетУчета, СчетДоходов, СчетУчетаНДСПоРеализации. Где задается что бы при загрузке в табличную часть вставали счета? Или это нужно править обработку? Или править правила? Почему они не устанавливаются?
1 LivingStar
 
10.07.13
13:36
OFF по ошибке видимо поставил...
2 Remark
 
10.07.13
13:37
Предприятие - Товары - Счета учета
3 LivingStar
 
10.07.13
13:40
(2) Там же счета учета номенклатуры? А если её очень много? Не заполнять же для каждой, или так делается?
4 LivingStar
 
10.07.13
13:44
(2) Регистры нужно заполнять?
Из http://subsystems.ru/catalog/28/156/ -

ВНИМАНИЕ!

Заполнение счетов бухгалтерского учета при загрузке документов осуществляется с учетом настроек, сделанных в базе конфигурации "Бухгалтерия предприятия", поэтому, прежде чем выполнять загрузку данных необходимо правильно заполнить регистры сведений, обеспечивающие заполнение бухгалтерских счетов по умолчанию ("Счета учета номенклатуры", "Счета учета расчетов с контрагентами" и т. п.), а также проследить, чтобы коды валют базы-источника совпдали с кодами валют базы-приёмника.
5 palpetrovich
 
10.07.13
13:45
(3) поле Номенклатура для основной массы оставляешь пустым, если есть какие-то ньансы реализации - тогда допстроки с этой номенклатурой
6 LivingStar
 
10.07.13
13:56
(5) А если такие настройки установлены, и счета не
заполняются? как нужно?

http://i065.radikal.ru/1307/8e/478d6ea7bd28.jpg
7 mikecool
 
10.07.13
13:58
(4) ты у Мани поделку взял?
8 LivingStar
 
10.07.13
14:01
(7) На работе пользуются, не той что в меню сервис встроена, а во внешних обработках. Значит кто то что то в ней делал. Я вот ищу решение задачи.
9 LivingStar
 
10.07.13
14:02
(7) В принципе же всегда можно найти оригинальную. Но УТ не типовая.
10 Пеппи
 
10.07.13
14:04
(6) не все поля заполнили
11 LivingStar
 
10.07.13
16:16
(10) Ок, завтра гляну, интересно загрузится ли со счетами?
А какие поля ещё нужно заполнить? Может строку какую добавить?
12 acsent
 
10.07.13
16:18
(0) возьми типовые правила и их дорабатывай
13 acsent
 
10.07.13
16:19
(11) проверь на ручном заполнении документов номенклатурой из ут
14 LivingStar
 
11.07.13
05:16
(13) Ввел строку счета, подставляются.
15 НаборДанных
 
11.07.13
06:13
(0)ПТиУ, "ПослеЗагрузки"

<1c>
СчетаУчета = БухгалтерскийУчетРасчетовСКонтрагентами.ПолучитьСчетаРасчетовСКонтрагентом(Объект.Организация, Объект.Контрагент, Объект.ДоговорКонтрагента);

Если Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
   Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовСКомитентом;
Иначе
   Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетов;
КонецЕсли;

Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансов;
Объект.СчетУчетаРасчетовПоТаре        = СчетаУчета.СчетУчетаТары;

ОбязательноЗаполнениеСчетов = Объект.ЭтоНовый() ИЛИ Объект.Организация <> Объект.Ссылка.Организация;

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

Если НалоговыйУчетУСН.ПрименениеУСН(Объект.Организация, Объект.Дата) Тогда

   Для каждого СтрокаТЧ Из Объект.Товары Цикл
       Если Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
           СтрокаТЧ.ОтражениеВУСН = Перечисления.ОтражениеВУСН.НеПринимаются;
       Иначе
           СтрокаТЧ.ОтражениеВУСН = Перечисления.ОтражениеВУСН.Принимаются;
       КонецЕсли;    
   КонецЦикла;
   
   Для каждого СтрокаТЧ Из Объект.Услуги Цикл
       СтрокаТЧ.ОтражениеВУСН = Перечисления.ОтражениеВУСН.Принимаются;
   КонецЦикла;
   
КонецЕсли;

Для каждого СтрокаТЧ Из Объект.Услуги Цикл
   СтатьяЗатрат         = СтрокаТЧ.Субконто1;
   НоменклатурнаяГруппа = СтрокаТЧ.Субконто2;
   Подразделение        = СтрокаТЧ.Субконто3;
   СтрокаТЧ.Субконто1 = Неопределено;
   СтрокаТЧ.Субконто2 = Неопределено;
   СтрокаТЧ.Субконто3 = Неопределено;
   Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТЧ, "Услуги", Истина, Истина);
   Если ЗначениеЗаполнено(СтрокаТЧ.СчетЗатрат) Тогда
       Счет = СтрокаТЧ.СчетЗатрат;
       ЧислоАктивныхСубконто = Счет.ВидыСубконто.Количество();
       Для Сч = 1 По ЧислоАктивныхСубконто Цикл
           Если Счет.ВидыСубконто[Сч-1].ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат Тогда
               СтрокаТЧ["Субконто"+Сч] = СтатьяЗатрат;
           ИначеЕсли Счет.ВидыСубконто[Сч-1].ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты Тогда
               СтрокаТЧ["Субконто"+Сч] = Объект.Контрагент;
           ИначеЕсли Счет.ВидыСубконто[Сч-1].ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры Тогда
               СтрокаТЧ["Субконто"+Сч] = Объект.ДоговорКонтрагента;
           ИначеЕсли Счет.ВидыСубконто[Сч-1].ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура Тогда
               СтрокаТЧ["Субконто"+Сч] = СтрокаТЧ.Номенклатура;
           ИначеЕсли Счет.ВидыСубконто[Сч-1].ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы Тогда
               СтрокаТЧ["Субконто"+Сч] = НоменклатурнаяГруппа;
           //ИначеЕсли Счет.ВидыСубконто[Сч-1].ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения Тогда
           //    СтрокаТЧ["Субконто"+Сч] = Подразделение;
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;
КонецЦикла;

Для каждого СтрокаТЧ Из Объект.ВозвратнаяТара Цикл
   Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТЧ, "ВозвратнаяТара", Истина, Истина);
КонецЦикла;
</1c>
16 НаборДанных
 
11.07.13
06:15
(15)Хм, когда уже какие нибудь тэги будут нормально прятать текст под спойлер....
17 LivingStar
 
11.07.13
07:26
(15) это код который вы встроили в загруженные правила в конфигурацию конвертация данных и сами прописываете счета при загрузке документа РеализацияТоваровУслуг?
18 НаборДанных
 
11.07.13
07:29
(17)Да
19 НаборДанных
 
11.07.13
07:30
+(17)Точнее это пример из Поступления, в Реализации монописуарно=).
20 НаборДанных
 
11.07.13
07:31
+(17)И, это в обработчике "ПослеЗагрузки".
21 LivingStar
 
11.07.13
07:43
(19)(20) Ясно, надо будет посмотреть в Конвертации данных правила.

А настройки что в (6) не помогают? Что бы счета указанные там сами проставлялись.
22 НаборДанных
 
11.07.13
07:53
(21)Нет, мне не помогало. Ну счета учета быть заполненными обязаны, иначе и мой код не спасет. Мой код просто выполняет по сути код из процедуры "ПриИзменении" номенклатуры в ТЧ.
23 LivingStar
 
12.07.13
10:32
Почему если я в процедуре ПослеЗагрузки, размещаю код:

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

...при загрузке выдается код ошибки, -

Ошибка формата обмена
24 LivingStar
 
12.07.13
10:34
(23+) добавляю в ПослеЗагрузки в конвертации данных этот кусок кода, после сохранения и перегрузке, при загрузке выдается эта ошибка, - Ошибка формата обмена
25 LivingStar
 
12.07.13
10:37
(24+) если этот кусок кода закоментировать, то при перезагрузке ошибки нет, то есть дело только в нем

в БП в модуле объекта документа РеализацияТоваровУслуг есть процедура, -

// Заполняет счета в строке табличной части
//
Процедура ЗаполнитьСчетаУчетаВСтрокеТабЧасти(СтрокаТЧ, ИмяТабЧасти, Заполнять) Экспорт

   СчетаУчета     = БухгалтерскийУчет.ПолучитьСчетаУчетаНоменклатуры(Организация, СтрокаТЧ.Номенклатура, Склад);
   //СчетаРозницы   = (Склад.ВидСклада = Перечисления.ВидыСкладов.Розничный);
   ЭтоКомиссия    = (ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
   МетаданныеДока = Метаданные();

   ЗаполнитьСчета(СтрокаТЧ, ИмяТабЧасти, СчетаУчета, Заполнять, ЭтоКомиссия, МетаданныеДока);

КонецПроцедуры // ЗаполнитьСчетаУчетаВСтрокеТабЧасти()
26 LivingStar
 
12.07.13
10:46
up!
27 Кай066
 
12.07.13
10:50
(26) Счета учета в настройках БП можно задавать для групп, а не устанавливать для каждой единицы номенклатуры. Счета затрат пуказваются в правилах. Файл с правилами можно открыть в блокноте (или notepad++ или через 1С) и осмотреть/подправить
28 AmoreMe
 
12.07.13
10:55
Объект.ЗаполнитьСчетаУчетаВТабЧасти(Объект.Товары, "Товары", ИСТИНА, ИСТИНА);
29 LivingStar
 
12.07.13
11:10
(27) так я его и правлю в конвертации данных

вот так счета вроде появились, но без субконто

КоличествоСтрок = Объект.Товары.Количество();
Для НомерСтроки = 0 по КоличествоСтрок-1 цикл
   СтрокаТЧ = Объект.Товары.Получить(НомерСтроки);
   Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(СтрокаТЧ, "Товары", Истина);    
   //СтрокаТЧ.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
   //СтрокаТЧ.СчетДоходов = ПланыСчетов.Хозрасчетный.ВыручкаНеЕНВД;
   //СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД;
   //СтрокаТЧ.СчетУчетаНДСПоРеализации           = ПланыСчетов.Хозрасчетный.Продажи_НДС;
   //СтрокаТЧ.Себестоимость= СтрокаТЧ.Сумма - СтрокаТЧ.СуммаНДС;
   Если Не ЗначениеЗаполнено(СтрокаТЧ.Субконто) тогда
       СтрокаТЧ.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000002");
   КонецЕсли;
КонецЦикла;
30 LivingStar
 
12.07.13
11:10
(28) а ваша ставит субконто?
31 Кай066
 
12.07.13
11:15
(30) как то так

<Свойство>
                           <Код>5</Код>
                           <Наименование>НоменклатурнаяГруппа --&gt; НоменклатурнаяГруппа</Наименование>
                           <Порядок>750</Порядок>
                           <Источник Имя="НоменклатурнаяГруппа" Вид="Реквизит" Тип="СправочникСсылка.НоменклатурныеГруппы"/>
                           <Приемник Имя="НоменклатурнаяГруппа" Вид="Реквизит" Тип="СправочникСсылка.НоменклатурныеГруппы"/>
                           <КодПравилаКонвертации>НоменклатурныеГруппы                              </КодПравилаКонвертации>
                       </Свойство>
Программист всегда исправляет последнюю ошибку.