Имя: Пароль:
1C
1С v8
Запись не верна! Не заполнены оба счета %)
,
0 ejiki
 
01.07.13
10:40
Не могу понять где косячнул в коде %) подскажите свежим взглядом окинув ;)



Пока Выборка.Следующий() Цикл
               Движение = Движения.Хозрасчетный.Добавить();
               Движение.Период = Дата;
               Движение.Организация = Организация;
           Если
               Выборка.Актив = ("Активный") Тогда
               Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("79.01");
               Движение.ПодразделениеДт = Выборка.Подразделение;
               Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделения] = ОрганизацияПолучатель;
           
               
               Движение.СчетКт = Выборка.Счет;
               Движение.ПодразделениеКт = Выборка.Подразделение;
               Движение.СубконтоКт[Выборка.ВидСубконто1]         = Выборка.Субконто1;
               Движение.СубконтоКт[Выборка.ВидСубконто2]          = Выборка.Субконто2;
               Движение.СубконтоКт[Выборка.ВидСубконто3]          = Выборка.Субконто3;
               Движение.КоличествоКт = Выборка.КоличествоОстатокДт;
               
               Движение.Сумма        = Выборка.СуммаОстатокДт;
               Движение.СуммаНУДт    = Выборка.СуммаНУОстатокДт;
               Движение.СуммаНУКт    = Выборка.СуммаНУОстатокДт;
               Движение.СуммаВРДт    = Выборка.СуммаВРОстатокДт;
               Движение.СуммаВРКт    = Выборка.СуммаВРОстатокДт;                
               Движение.СуммаПРДт    = Выборка.СуммаВРОстатокДт;
               Движение.СуммаПРКт    = Выборка.СуммаВРОстатокДт;
               Движение.Содержание   = "Выделение";
               
           ИначеЕсли
               
               Выборка.Актив = ("Пассивный") Тогда
               Движение.СчетДт = Выборка.Счет;
               Движение.ПодразделениеДт = Выборка.Подразделение;
               Движение.СубконтоДт[Выборка.ВидСубконто1]         = Выборка.Субконто1;
               Движение.СубконтоДт[Выборка.ВидСубконто2]          = Выборка.Субконто2;
               Движение.СубконтоДт[Выборка.ВидСубконто3]          = Выборка.Субконто3;
               Движение.КоличествоДт = Выборка.КоличествоОстатокКт;
               
               Движение.СчетКт =  ПланыСчетов.Хозрасчетный.НайтиПоКоду("79.01");
               Движение.ПодразделениеКт = Выборка.Подразделение;
               Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделения] = ОрганизацияПолучатель;
               
               Движение.Сумма = Выборка.СуммаОстатокКт;
               Движение.СуммаНУДт = Выборка.СуммаНУОстатокДт;
               Движение.СуммаНУКт = Выборка.СуммаНУОстатокДт;
               Движение.СуммаВРДт = Выборка.СуммаВРОстатокДт;
               Движение.СуммаВРКт = Выборка.СуммаВРОстатокДт;                
               Движение.СуммаПРДт = Выборка.СуммаВРОстатокДт;
               Движение.СуммаПРКт = Выборка.СуммаВРОстатокДт;
               Движение.Содержание = "Выделение";
           КонецЕсли;
       КонецЦикла;
1 vicof
 
01.07.13
10:41
а телепатировать текст ошибки кто должен?
2 Mitriy
 
01.07.13
10:41
пальцем в небо: ИначеЕсли
3 vicof
 
01.07.13
10:42
(2) хех
4 Mitriy
 
01.07.13
10:42
поторопился...
5 vicof
 
01.07.13
10:42
(2) в небо
6 Maxus43
 
01.07.13
10:42
ИначеЕсли чо?
7 vicof
 
01.07.13
10:43
(6) еще один
8 zak555
 
01.07.13
10:43
Движения.Хозрасчетный.Загрузить(Выборка.Выгрузить());
9 Maxus43
 
01.07.13
10:43
находит ПланыСчетов.Хозрасчетный.НайтиПоКоду("79.01")?
Выборка.Счет - тоже заполнен?
10 Галахад
 
гуру
01.07.13
10:43
Может "Актив" НЕ строка?
11 Maxus43
 
01.07.13
10:43
(7) нас много и мы любим красивый структурированый код, а не такой
12 Cube
 
01.07.13
10:44
(0) Замени

ИначеЕсли Выборка.Актив = ("Пассивный") Тогда

на

Иначе
13 ejiki
 
01.07.13
10:44
(12)  спасибо сейчас попробую ;)
14 vicof
 
01.07.13
10:46
(11) я тоже :)
(0) пиши нормально!
15 ejiki
 
01.07.13
10:50
(14) да у меня мало опыта к сожалению, но я учусь и исправляюсь, укажите на мои ошибки и больше не повторюсь.

Теперь другого рода ошибка

"Запись не верна! Поле "Сумма (Налоговый Учет)" должно быть пустым!

Я так понимю еще при исполнении цикла нужно проверку на Пустое значение запилить?
16 ejiki
 
01.07.13
10:51
Или как побороть сей недуг?
17 Maxus43
 
01.07.13
10:51
(15) ошибка у тебя в условии. Актив со строкой сравнивать неользя
18 ejiki
 
01.07.13
10:52
(8) Зак я бы с удовольствием так и поступил, но там в зависимости от того активный или пассивный счет нужно сделать движение на 79.01, Активный в кредет, пассивный - дебет
19 ejiki
 
01.07.13
10:52
(17) о как, а как проверить тогда активный или пассивный счет?!
20 Cube
 
01.07.13
10:52
(15) "Запись не верна! Поле "Сумма (Налоговый Учет)" должно быть пустым!"
Ахахаха))))

Это пять:

Движение.СуммаНУДт = Выборка.СуммаНУОстатокДт;
Движение.СуммаНУКт = Выборка.СуммаНУОстатокДт;
Движение.СуммаВРДт = Выборка.СуммаВРОстатокДт;
Движение.СуммаВРКт = Выборка.СуммаВРОстатокДт;                
Движение.СуммаПРДт = Выборка.СуммаВРОстатокДт;
Движение.СуммаПРКт = Выборка.СуммаВРОстатокДт
21 Maxus43
 
01.07.13
10:53
(19) а я вот без понятия что у тебя в Выборка.Актив... отладчик включай
22 ejiki
 
01.07.13
10:53
(20) твою ж мать , какого-то хрена изменения не сохранились %)
23 ejiki
 
01.07.13
10:54
(21) это тип счета "Активный" или "Пассивный"
24 zak555
 
01.07.13
10:54
(18) в тесте запроса сразу укажи нужные тебе счета
25 Maxus43
 
01.07.13
10:55
(23) ну дак с таким типом и сравнивай, а не со строкой
26 ejiki
 
01.07.13
10:55
(20) ан нет, по идее же так и должно быть или я не верно понимаю %) сейчас еще попробую сообразить в чем мой косяк %)
27 ejiki
 
01.07.13
10:56
(25) не имел раньше с этим дело :( подскажи как?) всего-то наверняка 1 строчка короткая..
28 ejiki
 
01.07.13
10:57
(24) ну вот смотри, тогда получится что запрос будет только для активного счета, ну или пассивного. или я не догоняю(
29 Maxus43
 
01.07.13
10:58
(27) Выборка.Счет.Вид = ВидСчета.Активный
30 ejiki
 
01.07.13
10:59
(29) действительно просто. Хорошо, сейчас запилю) спасибо ;)
31 zak555
 
01.07.13
11:00
(28) объединишь два запроса
32 ejiki
 
01.07.13
11:05
(31) инетесно, раньше такого объединения не видел. Попробую, ну а пока тем методом через Ж**у который есть, просто нужно как можно быстрее сделать это проведение документа.
33 zak555
 
01.07.13
11:07
(32) запрос покажи
34 hhhh
 
01.07.13
11:08
(32) а если счет активно-пассивный?
35 ejiki
 
01.07.13
11:10
он внизу, чуть-чуть его допилил, а ИначеЕсли заменить не могу, так я проверяю Активность-Пассивность счета.


Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ХозрасчетныйОстатки.Счет.Вид КАК Актив,
                  |    ХозрасчетныйОстатки.Счет КАК Счет,
                  |    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
                  |    ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
                  |    ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
                  |    ХозрасчетныйОстатки.Подразделение КАК Подразделение,
                  |    ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт,
                  |    ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт,
                  |    ХозрасчетныйОстатки.КоличествоОстатокДт КАК КоличествоОстатокДт,
                  |    ХозрасчетныйОстатки.КоличествоОстатокКт КАК КоличествоОстатокКт,
                  |    ХозрасчетныйОстатки.СуммаНУОстатокДт КАК СуммаНУОстатокДт,
                  |    ХозрасчетныйОстатки.СуммаНУОстатокКт КАК СуммаНУОстатокКт,
                  |    ХозрасчетныйОстатки.СуммаПРОстатокДт КАК СуммаПРОстатокДт,
                  |    ХозрасчетныйОстатки.СуммаПРОстатокКт КАК СуммаПРОстатокКт,
                  |    ХозрасчетныйОстатки.СуммаВРОстатокДт КАК СуммаВРОстатокДт,
                  |    ХозрасчетныйОстатки.СуммаВРОстатокКт КАК СуммаВРОстатокКт,
                  |    ХозрасчетныйОстатки.Организация КАК Организация,
                  |    ХозрасчетныйВидыСубконто1.Ссылка,
                  |    ХозрасчетныйВидыСубконто1.НомерСтроки КАК НомерСтроки1,
                  |    ХозрасчетныйВидыСубконто1.ВидСубконто КАК ВидСубконто1,
                  |    ХозрасчетныйВидыСубконто2.Ссылка КАК Ссылка1,
                  |    ХозрасчетныйВидыСубконто2.НомерСтроки КАК НомерСтроки2,
                  |    ХозрасчетныйВидыСубконто2.ВидСубконто КАК ВидСубконто2,
                  |    ХозрасчетныйВидыСубконто3.Ссылка КАК Ссылка2,
                  |    ХозрасчетныйВидыСубконто3.НомерСтроки КАК НомерСтроки3,
                  |    ХозрасчетныйВидыСубконто3.ВидСубконто КАК ВидСубконто3
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
                  |        ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто3
                  |        ПО (ХозрасчетныйВидыСубконто3.НомерСтроки = 3)
                  |            И ХозрасчетныйОстатки.Счет = ХозрасчетныйВидыСубконто3.Ссылка
                  |        ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто1
                  |        ПО (ХозрасчетныйВидыСубконто1.НомерСтроки = 1)
                  |            И ХозрасчетныйОстатки.Счет = ХозрасчетныйВидыСубконто1.Ссылка
                  |        ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто2
                  |        ПО (ХозрасчетныйВидыСубконто2.НомерСтроки = 2)
                  |            И ХозрасчетныйОстатки.Счет = ХозрасчетныйВидыСубконто2.Ссылка";
                 
   Запрос.УстановитьПараметр("Счет", Счет);
   Запрос.УстановитьПараметр("Дата", Дата);
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   Запрос.УстановитьПараметр("Организация", Организация);
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
           
   Движения.Хозрасчетный.Записывать = Истина;
   Движения.Хозрасчетный.Очистить();
       
   Если Контрагент = Справочники.Контрагенты.НайтиПоКоду("000002971") Тогда ОрганизацияПолучатель = Справочники.Организации.НайтиПоКоду("000000005")
   ИначеЕсли Контрагент = Справочники.Контрагенты.НайтиПоКоду("000002972") Тогда ОрганизацияПолучатель = Справочники.Организации.НайтиПоКоду("000000006")
   КонецЕсли;    
   
   
       Пока Выборка.Следующий() Цикл
               Движение = Движения.Хозрасчетный.Добавить();
               Движение.Период = Дата;
               Движение.Организация = Организация;
           Если
               Выборка.Счет.Вид = ВидСчета.Активный Тогда
               Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("79.01");
               Движение.ПодразделениеДт = Выборка.Подразделение;
               Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделения] = ОрганизацияПолучатель;
           
               
               Движение.СчетКт = Выборка.Счет;
               Движение.ПодразделениеКт = Выборка.Подразделение;
               Движение.СубконтоКт[Выборка.ВидСубконто1]         = Выборка.Субконто1;
               Движение.СубконтоКт[Выборка.ВидСубконто2]          = Выборка.Субконто2;
               Движение.СубконтоКт[Выборка.ВидСубконто3]          = Выборка.Субконто3;
               Движение.КоличествоКт = Выборка.КоличествоОстатокДт;
               
               Движение.Сумма        = Выборка.СуммаОстатокДт;
               Движение.СуммаНУКт    = Выборка.СуммаНУОстатокДт;
               Движение.СуммаВРКт    = Выборка.СуммаВРОстатокДт;                
               Движение.СуммаПРКт    = Выборка.СуммаВРОстатокДт;
               Движение.Содержание   = "Выделение";
               
           ИначеЕсли
               
               Выборка.Счет.Вид = ВидСчета.Пассивный Тогда
               Движение.СчетДт = Выборка.Счет;
               Движение.ПодразделениеДт = Выборка.Подразделение;
               Движение.СубконтоДт[Выборка.ВидСубконто1]         = Выборка.Субконто1;
               Движение.СубконтоДт[Выборка.ВидСубконто2]          = Выборка.Субконто2;
               Движение.СубконтоДт[Выборка.ВидСубконто3]          = Выборка.Субконто3;
               Движение.КоличествоДт = Выборка.КоличествоОстатокКт;
               
               Движение.СчетКт =  ПланыСчетов.Хозрасчетный.НайтиПоКоду("79.01");
               Движение.ПодразделениеКт = Выборка.Подразделение;
               Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделения] = ОрганизацияПолучатель;
               
               Движение.Сумма = Выборка.СуммаОстатокКт;
               Движение.СуммаНУДт = Выборка.СуммаНУОстатокДт;
               Движение.СуммаВРДт = Выборка.СуммаВРОстатокДт;                
               Движение.СуммаПРДт = Выборка.СуммаВРОстатокДт;
               Движение.Содержание = "Выделение";

           ИначеЕсли Выборка.Счет.Вид = ВидСчета.АктивноПассивный Тогда
               Сообщить("Счет является Активно\Пассивным. Данный алгоритм для него не сработает. Другим документом сделаем ага?");
           КонецЕсли;
       КонецЦикла;
36 ejiki
 
01.07.13
11:12
Кажется выяснил свою тупую ошибку, на счете 79.01 нету НУ, поэтому такая вот ошибка, сейчас подрихтую и проверю.
37 ejiki
 
01.07.13
11:13
Ребята!!! Круто!!! Получилось!!)) Это мой первый Докумнет Делающий проводки ^^,

Зак Покажи мне на мои нелепые ошибки в написании кода, ну как сделать его более читаемым и правильным. С удовольствием научусь :D
38 Maxus43
 
01.07.13
11:15
(37) просто смотри как уже сделано в типовых. там более менее красиво
39 zak555
 
01.07.13
11:17
что ты передаёшь в параметр счет :?
40 ejiki
 
01.07.13
11:18
(38) Видишь в чем дело, там когда отлидчиком лазить приходится, вроде все понятно более менее для меня безграмотного, а как самому делать это надо уже знать где примерно похожее есть, я зарываюсь в коды документов которые примерно похожи но результат чаще сводится к 0. вот и все. Буду стараться как-то исправиться)) Так круто)) что все работает как надо))
41 ejiki
 
01.07.13
11:19
(39) Счет который указываю в реквезите документа, чтобы отдельно по каждому из списка счетов сформировать нужные проводки, и иметь возможность Присобачить ПФ Для Акта о передаче. Так сказать подтверждающую бумажку.
42 zak555
 
01.07.13
11:19
(41) пример счета приведи
43 ejiki
 
01.07.13
11:20
Просто идет выделение в организации, из 1 делают 3, вот через 79.01 было решено убирать, но нужно еще Видеть что на какую организацию пошло и распечатать распоредительные документы. Как-то так. Идея пришла только сделать документ.
44 ejiki
 
01.07.13
11:22
(42) 60.02 , да вообще идет разделение баланса, все Активно\Пассивные счета как-то решено было остатки перенести вручную, а вот для остальных не удобно получается.
45 ejiki
 
01.07.13
11:24
просто на балансе допустим Основных средств более 2х тысяч точно. Ну сейчас главное определиться с БУ, а затем уже и необходимые регистры перенесу заполненными в другие организации