Имя: Пароль:
1C
 
Как программно создать/изменить проводки для документа?
0 Великий мыслитель
 
05.03.10
15:35
Или как настроить создание правильных проводок в документе в бух 8.1?
1 Irbis
 
05.03.10
15:37
Ответ на вопрос - 100 руб.
Правильный ответ на вопрос - 1000 руб.
Вам замуж или мороженого?
2 Великий мыслитель
 
09.03.10
07:45
Ну так кто-нибудь может подсказать
1. Как программно создать проводки для документа
2. Как настроить создание проводок
3 Нууф-Нууф
 
09.03.10
07:50
книга Радченко "практические пособие разработчика"
4 ИС-2
 
09.03.10
08:12
Человек задал нормальный вопрос, что Вы ерничайте?
Например
ДокРед = ;//ссылка на документ редактирования
ДокРедОбъект = Докред.Получитьобъект();
ДокРедОбъект.Организация = РогаИКопыта;
...
ДокРедОБъект.Записать(РежимЗаписи.Проведение);
5 Великий мыслитель
 
09.03.10
08:16
А  вот так вот будет правильно, я настроил создание нужных проводок в конфигураторе?

Процедура ОбработкаПроведения(Отказ, Режим) //в разработке
   
   Перем СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаОплата;
   //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   Для Каждого ТекСтрокаРасшифровкаПлатежа Из РасшифровкаПлатежа Цикл
       // регистр Хозрасчетный
       Движение = Движения.Хозрасчетный.Добавить();
       Движение.Период = Дата;
       Движение.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("50.01");
       Движение.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("62.01");

       Движение.Организация = Организация;
       Движение.Сумма = СуммаДокумента/10;
       
           Движение = Движения.Хозрасчетный.Добавить();
   Движение.Период = Дата;
   Движение.СчетДт =планысчетов.Хозрасчетный.НайтиПоКоду("50.01");
   Движение.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("62.03");

   Движение.Организация = Организация;
   Движение.Сумма = СуммаДокумента-СуммаДокумента/10;

   КонецЦикла;
   // регистр Хозрасчетный

   //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры // ОбработкаПроведения
6 Великий мыслитель
 
09.03.10
08:17
это для ПКО
7 butterbean
 
09.03.10
08:18
(5) расчет суммы прикольный, а так вылядит нормально.... субконто только не хватает
8 Великий мыслитель
 
09.03.10
08:20
(7)
Так бухи велели. А субконто для просмотра ОСВ обязательно или можно и без него?
9 shuhard
 
09.03.10
08:20
(7)[расчет суммы прикольный]
и работать не будет, копейки не сойдутся
10 Великий мыслитель
 
09.03.10
08:20
(9)
а как сделать, чтобы сошлись?
11 ASU_Diamond
 
09.03.10
08:21
а что в БП не в документе указываются счета? О_о
12 Великий мыслитель
 
09.03.10
08:22
(11)
а как их в документе настроить?
13 ASU_Diamond
 
09.03.10
08:29
(12) у меня УПП
и там в зависимости от операции поставляются счета
если "Прочие", то дает самим вводить
14 Нуф-Нуф
 
09.03.10
08:30
(13) имхо УПП <> БП
15 ASU_Diamond
 
09.03.10
08:31
(14) я думаю принципы таких элементарных документов сохранились. Или я ошибаюсь?
так-то я просто в (11) спросил
16 Великий мыслитель
 
09.03.10
08:46
А как программно задать, что субконто ДТ № 1 = определенный реквизит?
17 hhhh
 
09.03.10
09:31
(16) там функция УстановитьСубконто() есть. Посмотри как в типовой сделано. Возможно, тебе просто надо в типовых проводках подправить суммы, а ты решил весь документ изничтожить и по новой всё написать.
18 luckyluke
 
09.03.10
09:35
Ну я так понимаю он на чистой базе это делает, только вод обманчивая быстро освоения методом тыка займет намного больше времени, нежели использовать совет в (3)
19 hhhh
 
09.03.10
09:40
(18) что, для бухов делает приходный ордер на чистой базе? Ну, монстр!
20 luckyluke
 
09.03.10
09:45
hhhh
Ну я так понимаю он пытается разобраться как делать эти проводки вообще, если конечно он это всё делает в БП, то... всё крайне плохо и ему надо не программировать учиться, а типовую сначала изучать.
А если вот это "//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ" было сделано в типовом документе, то всё еще хуже :)
21 Великий мыслитель
 
09.03.10
09:47
Вот я одно субконто сделал
БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, "Контрагенты", этотобъект.Контрагент);

Все вроде встало. Для счета субконто 3 не задано. Но, тем не менее, можно ли что-то туда запихнуть? Как это сделать программно (типа строчки выше)
22 luckyluke
 
09.03.10
09:48
О, Великий мыслитель!
судя по фразе "это для ПКО", ты в приходном кассовом ордере, в типовой конфигурации Бухгалтерия предприятия использовал конструктор движений регистров?
23 Великий мыслитель
 
09.03.10
09:49
(22)
да, я потом дополню типовую, сейчас просто для конкретного вида дока отрабатываю механизм.
24 ASU_Diamond
 
09.03.10
09:49
(0) надеюсь что бекап есть.
25 luckyluke
 
09.03.10
09:50
"да, я потом дополню типовую"
Чем тебе типовой механизм не угодил? Слишком гибкий?
26 Великий мыслитель
 
09.03.10
09:51
(25)
бухи сказали, им для конкретных пко надо другие движения
27 luckyluke
 
09.03.10
09:54
(26)
Ну а почему бухи не могут ставить для "конкретных" ПКО другие счета? Ты выбрал очень неправильный путь для удовлетворения бухов.
28 Великий мыслитель
 
09.03.10
09:54
блин, как у счета заполнить субконто 3, указав не его название, а именно что это субконто 3
29 Великий мыслитель
 
09.03.10
09:54
(27)
а как по другому?
30 luckyluke
 
09.03.10
09:55
(28)
Выбрать вид операции прочие и заполнить счет 62.03 и выбрать все 3 субконто например?
31 Великий мыслитель
 
09.03.10
09:56
(30)
блин, я программно проводку делаю, мне надо программно субконто 3 заполнить, как это сделать?
32 luckyluke
 
09.03.10
09:57
(0)Ты понимаешь, что если ты вот это:
роцедура ОбработкаПроведения(Отказ, Режим) //в разработке

   
   Перем СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаОплата;
   //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

   // Данный фрагмент построен конструктором.

   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   Для Каждого ТекСтрокаРасшифровкаПлатежа Из РасшифровкаПлатежа Цикл
       // регистр Хозрасчетный

       Движение = Движения.Хозрасчетный.Добавить();
       Движение.Период = Дата;
       Движение.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("50.01");
       Движение.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("62.01");

       Движение.Организация = Организация;
       Движение.Сумма = СуммаДокумента/10;
       
           Движение = Движения.Хозрасчетный.Добавить();
   Движение.Период = Дата;
   Движение.СчетДт =планысчетов.Хозрасчетный.НайтиПоКоду("50.01");
   Движение.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("62.03");

   Движение.Организация = Организация;
   Движение.Сумма = СуммаДокумента-СуммаДокумента/10;

   КонецЦикла;
   // регистр Хозрасчетный


   //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры // ОбработкаПроведения
Добавишь в типовую, то ты сознательно похеришь весь типовой механизм, чем у бухов отберешь операции, которые до этого работатли.
33 Великий мыслитель
 
09.03.10
09:58
(32)
Я скопирую типовой механизм, а свой по условию добавлю.
34 luckyluke
 
09.03.10
09:59
(33)
Я сдаюсь, ты победил, добавляй.
35 Великий мыслитель
 
09.03.10
09:59
(34)
а что, будут негативные последствия?
36 ASU_Diamond
 
09.03.10
10:01
(35) для начала подумай как будешь обновляться
37 luckyluke
 
09.03.10
10:03
(35)
Почему-то я в этом не сомневаюсь, ты не понимаешь как работает типовая конфигурация, но уже с рвением собрался править её. Это как взять работающую машину с работающим двигателем, не зная как она устроена с уверенностью улучшения начнешь в двигатель добавлять свои "улучшения".
38 Великий мыслитель
 
09.03.10
10:04
(36)
обновления раз в полгода. Обновлю, а потом скопирую свой код туда.
39 Великий мыслитель
 
09.03.10
10:19
О, я все таки сделал это. И старые документы не похерились и новые работают как надо. Кто сомневался в моем плане - сосут!

Процедура ОбработкаПроведения(Отказ, Режим) //в разработке
   
   Перем СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаОплата;
   
   // Заголовок для сообщений об ошибках проведения.
   Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка);
   
   // Проверка ручной корректировки
   Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
       Возврат
   КонецЕсли;

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

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

   Для Каждого ТекСтрокаРасшифровкаПлатежа Из РасшифровкаПлатежа Цикл
       // регистр Хозрасчетный
       Движение = Движения.Хозрасчетный.Добавить();
       Движение.Период = Дата;
       Движение.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("50.01");
       Движение.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("62.01");

       Движение.Организация = Организация;
       Движение.Сумма = СуммаДокумента/10;
       БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, "Контрагенты", этотобъект.Контрагент);
      БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, "Договоры", этотобъект.ДоговорКонтрагента);
      БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, 3, этотобъект.Основание);

        Движение.Содержание = "Поступление денежных средств";
       
           Движение = Движения.Хозрасчетный.Добавить();
   Движение.Период = Дата;
   Движение.СчетДт =планысчетов.Хозрасчетный.НайтиПоКоду("50.01");
   Движение.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("62.03");

   Движение.Организация = Организация;
   Движение.Сумма = СуммаДокумента-СуммаДокумента/10;
   БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, "Контрагенты", этотобъект.Контрагент);
      БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, "Договоры", этотобъект.ДоговорКонтрагента);
           Движение.Содержание = "Поступление денежных средств";
            БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, 3, этотобъект.Основание);

        КонецЦикла;
    конецесли;
    ///--------------------------------------------------------------------------------------доработка

КонецПроцедуры // ОбработкаПроведения