Имя: Пароль:
1C
1С v8
БП 2.0 Зачет авансов
0 Evgen54
 
25.12.11
20:23
У меня в БП 1.6 в Общие-ОбщиеМодули-БухгалтерскийУчетРасчетовсКонтрагентами была функция "ЗачетАвансов". Она была дописана. Где в БП 2.0 сейчас эта функция? Неужели ее в каждый документ запихали??? Подскажите пжл.
1 Aleksey
 
25.12.11
20:25
зачем она нужна?
2 Aleksey
 
25.12.11
20:27
В конфигураторе работает поиск, который показывает, что теперь в каждом доке своя процедура


// Зачет авансов
ТаблицаЗачетаАвансов = ПодготовитьТаблицуЗачетаАвансов(СтруктураШапкиДокумента);
ПроверитьЗаполнениеТабличнойЧастиЗачетАвансов(ТаблицаЗачетаАвансов, СтруктураШапкиДокумента, Отказ, Заголовок);

...
// Движения по документу
Если Не Отказ Тогда
ДвиженияПоРегистрам(
           РежимПроведения, СтруктураШапкиДокумента,
           ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоАгентскимУслугам, ТаблицаЗачетаАвансов,
           Отказ, Заголовок);

КонецЕсли;
3 Evgen54
 
25.12.11
20:29
У меня в документе "ПоступлениеТоваровУслуг" надо дописать отдельным полем зачет авансов в шапке. Дописать то дописал а как проводку сделать не могу додумать. Переношу базу из 1.6 в 2.0
4 Evgen54
 
25.12.11
20:38
Помогите сделать проводку документу. Я так понимаю надо редактировать эту функцию или я не прав?
Функция ПодготовитьТаблицуЗачетаАвансов(СтруктураШапкиДокумента)

   Если СтруктураШапкиДокумента.СпособЗачетаАвансов <> Перечисления.СпособыЗачетаАвансов.ПоДокументу Тогда
       //И СтруктураШапкиДокумента.ЗачетСуммыАванса = 0 Тогда
       ТаблицаЗачетаАвансов = ЗачетАвансов.ВыгрузитьКолонки();
   Иначе
       //ТаблицаЗачетаАвансов.ДокументАванса = СтруктураШапкиДокумента.СчетДоговораАванс;
       //ТаблицаЗачетаАвансов.СуммаЗачета = СтруктураШапкиДокумента.ЗачетСуммыАванса;
       ТаблицаЗачетаАвансов = ЗачетАвансов.Выгрузить();
       ТаблицаЗачетаАвансов.Свернуть("ДокументАванса", "СуммаЗачета");
   КонецЕсли;
   ТаблицаЗачетаАвансов.Колонки.ДокументАванса.Имя = "ДокументРасчетов";
   ТаблицаЗачетаАвансов.Колонки.СуммаЗачета.Имя    = "СуммаВзаиморасчетов";
   
   Возврат ТаблицаЗачетаАвансов;

КонецФункции
5 Evgen54
 
25.12.11
20:42
комментарии это мои пробы. что-то не получается ели так дописать. Ругается что тип неверный.
6 Aleksey
 
25.12.11
20:43
Нет, см дальше

Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента,

...
ТаблицаВзаиморасчетов = УправлениеВзаиморасчетами.ЗачестьАвансКонтрагента(
           СтруктураШапкиДокумента, ТаблицыДокумента, ТаблицаЗачетаАвансов, Проводки,
           СтруктураШапкиДокумента.НДСВключенВСтоимость, Отказ, Заголовок);



Смотри что делается в УправлениеВзаиморасчетами.ЗачестьАвансКонтрагента
7 Aleksey
 
25.12.11
20:47
Хотя хз что там тебе нужно
8 Evgen54
 
25.12.11
21:04
Aleksey! У меня есть в документе поле ЗачетАванса и стоит галочка ПроизвольнаяСуммаАванса мне нужно чтобы он просто тупо делал проводку с 60.02 на 60.01 сумму которая указана в поле ЗачетАванса. Можете мне помочь в этом?
9 Ногаминебить
 
25.12.11
21:15
Конечно будет ругаться на тип. Надо не колонке таблицы присваивать, а конкретной строке.
Ну хотя бы
      //ТаблицаЗачетаАвансов[НомерСтроки].ДокументАванса = СтруктураШапкиДокумента.СчетДоговораАванс;

       //ТаблицаЗачетаАвансов[НомерСтроки].СуммаЗачета = СтруктураШапкиДокумента.ЗачетСуммыАванса;
Только с НомерСтроки нужным опеределиться необходимо. :)
10 Evgen54
 
25.12.11
21:19
При произвольном зачете авансов строка вообще одна. Их не может быть больше одной.
11 Evgen54
 
25.12.11
21:23
тоесть мне надо написать
ТаблицаЗачетаАвансов.Строка1.ДокументАванса = СтруктураШапкиДокумента.СчетДоговораАванс;?
12 Ногаминебить
 
25.12.11
21:24
(10) Ну таблица-то сначала 1Ской я так понимаю формируется какая-то. Если она пустая - строку надо добавить, если строка действительно одна - ну значит хорошо и просто подменить значения в ней, если строк больше одной - лишние придется удалять иначе все будет очень криво.
13 Ногаминебить
 
25.12.11
21:25
(11) ТаблицаЗачетаАвансов[0].ДокументАванса = СтруктураШапкиДокумента.СчетДоговораАванс;
Но вообще так нельзя. Надо сначала проверить, а что там в таблице есть.
14 Evgen54
 
25.12.11
21:29
Там нет таблицы. Таблица появляется только после того как ставлю галочку "СписокДокументов". А в обычном режиме там просто 2 поля ДокументАванса и СуммаЗачета.
15 Evgen54
 
25.12.11
21:36
Пишет "Получение документов по индексу не определенно"
16 Evgen54
 
25.12.11
21:42
Стоп. Я по моему понял. Принятый документ с БП 1.6 содержит только поле и ее значение в шапке документа, а таблицы то вообще нету. При проведении документа нужно наверно еще создать таблицу сначала а потом что-то присваивать? Я прав?
17 Aleksey
 
25.12.11
21:42
(8) А он разве так не делает? Если указать в ТЧ сумму он ее и возьмет

В БП 1.6 вроде бы не было такого механизма
18 Evgen54
 
25.12.11
21:53
в 1.6 такого механизма не было. Его дописали вручную. в 2.0 такой механизм появился, но по стандартному раскладу ему надо поставить в поле "ЗачетАвансов" выбрать "По Документу" из перечислений и тогда он создает дополнительную таблицу значений "ЗачетАвансов" в которой можно выбрать из базы документ авансов. Это бухи будут делать дальше, а мне данные за этот год перенести надо!
19 Evgen54
 
25.12.11
22:00
Я сейчас и хочу чтобы при проведении создалась таблица со значениями ЗачетаАвансов из шапки документа.
20 Aleksey
 
25.12.11
22:08
(18) И в чем проблема при загрузки установить нужные реквизиты? Зачем модуль типовой бухии то трогать?
21 Evgen54
 
25.12.11
22:12
хм. А как?
22 Evgen54
 
25.12.11
22:14
Я так понимаю нужно дописать в Обработчике событий после выгрузки?
у меня там дописано Так:
Если Объект.Контрагент=Справочники.Контрагенты.ПустаяСсылка() Тогда
   Объект.Контрагент=Объект.ДоговорКонтрагента.Владелец;
КонецЕсли;

Попытка
Объект.Записать(РежимЗаписиДокумента.Проведение)
Исключение
Объект.Записать(РежимЗаписиДокумента.Запись)
КонецПопытки

Что нужно подправить Подскажите?
23 Aleksey
 
25.12.11
22:24
А что там должно быть? Какой документ?
24 Aleksey
 
25.12.11
22:24
Ты его тоже выгружаешь или ищешь?
25 Evgen54
 
25.12.11
22:31
Это выгрузка документа "ПоступлениеТоваровУслуг" в нем в шапке есть поле ЗачетСуммыАванса и СчетДоговораАванс. В 2.0 При проведении если есть "ТаблицаЗачетаАвансов" он проводит суммы аванса которые в этой таблице. т.е. при переносе нужно создать ТаблицуЗачетаАвансов с двумя колонками, "ДокументАванса" и "СуммаЗачета", и вставить данные из документа 1.6 соответственно "СчетДоговораАванс" и "ЗачетСуммыАванса".
26 Aleksey
 
25.12.11
22:33
(25) Документ аванса - это выписка или ПКО, т.е. то что создало аванс, а не счет на оплату
27 Aleksey
 
25.12.11
22:34
А так в КД это будет выглядит примерно так http://screencast.com/t/myCDomgax
28 Evgen54
 
25.12.11
22:35
Это СчетДоговораАванс - это может быть и платежка и выписка
29 Aleksey
 
25.12.11
22:37
(28) Тогда смотри мультик и делай как в кино