Имя: Пароль:
1C
1C 7.7
v7: Если-Тогда-КонецЕсли
0 Christina_
 
15.10.12
14:11
Если ТаблицаСчетов.Счет.Забалансовый = 0 Тогда      
                   //проверям если счет кредит 76.88 тогда дебет 08
                   Если Конт.Операция.Кредит.Счет = СчетПоКоду("76.88") Тогда    
                       Соответствие = ПолучитьСубконто08(ТаблицаСчетов.Субконто3);
                       Сообщить("кредит 76.88  " + Соответствие);
                       Если ПустоеЗначение(Соответствие) = 0 Тогда          
                           Сообщить("Зашел кредит 76.88");
                           Конт.Операция.Дебет.Счет =Сч08_3;        
                           Конт.Операция.Дебет.Субконто(1, Соответствие);
                           Конт.Операция.Сумма = Разница;
                       КонецЕсли;
                   КонецЕсли;
                   Конт.Операция.Дебет.Счет = Сч91_2;
                   Конт.Операция.Дебет.ПрочиеДоходыИРасходы = КурсовыеРазницы;
                   //
               КонецЕсли;

не выполняет 2 Если, условие положительно, но не выполняет операторы внутри Если..в отладчике СчетПоКоду("76.88") = 76.88

Выше есть похожий код
Если ТаблицаСчетов.Счет.Забалансовый = 0 Тогда            
                   Конт.Операция.Кредит.Счет = Сч91_1;
                   Конт.Операция.Кредит.ПрочиеДоходыИРасходы = КурсовыеРазницы;
                   Конт.Операция.Сумма = Разница;
                   //проверям если счет дебета 76.88 тогда кредит 08
                   Если Конт.Операция.Дебет.Счет = СчетПоКоду("76.88") Тогда
                       Соответствие = ПолучитьСубконто08(ТаблицаСчетов.Субконто3);
                       Сообщить("дебет 76.88  "+ Соответствие);
                       Если  ПустоеЗначение(Соответствие) = 0 Тогда
                           Сообщить("Зашел дебет 76.88");
                           Конт.Операция.Дебет.Счет = Сч08_3;
                           Конт.Операция.Кредит.Счет =СчетПоКоду("76.88");
                           Конт.Операция.Дебет.Субконто(1, Соответствие);
                           Конт.Операция.Кредит.Субконто(1, ТаблицаСчетов.Субконто1);
                           Конт.Операция.Кредит.Субконто(2, ТаблицаСчетов.Субконто2);
                           Конт.Операция.Кредит.Субконто(3, ТаблицаСчетов.Субконто3);
                       КонецЕсли;
                   КонецЕсли;  
                   ///
               КонецЕсли;    

здесь ок всё.

Не могу понять что не так..
1 mikecool
 
15.10.12
14:13
Конт.Операция.Кредит.Счет НЕ РАВНО СчетПоКоду("76.88")
ваш КЭП
2 viktor_vv
 
15.10.12
14:16
Да не, это все копипаст. Проверяете Кредит, а устанавливаете для дебета :).
Я так подозреваю надо

                         Сообщить("Зашел кредит 76.88");
                           Конт.Операция.Кредит.Счет =Сч08_3;        
                           Конт.Операция.Кредит.Субконто(1, Соответствие);
3 Светлый Гений
 
15.10.12
14:16
Сообщить(Конт.Операция.Кредит.Счет);
4 viktor_vv
 
15.10.12
14:17
(2) Это если по аналогии со вторым фрагментом.
5 Christina_
 
15.10.12
14:17
(1)почему не равно? мне нужно выполнить проводку со счетом 80.3, только если равно Конт.Операция.Кредит.Счет = СчетПоКоду("76.88")
6 miki
 
15.10.12
14:17
я так понял, даму насторожил тот факт, что у неё всегда

Конт.Операция.Дебет.Счет = Сч91_2;
Конт.Операция.Дебет.ПрочиеДоходыИРасходы = КурсовыеРазницы;
7 miki
 
15.10.12
14:18
(5)не сделает твой код никогда проводку на 80.3.
8 mikecool
 
15.10.12
14:19
(5) потому что.
9 КонецЦикла
 
15.10.12
14:19
(0) Копипаст тебя погубит
10 Christina_
 
15.10.12
14:19
(6) наверное..
у меня есть проводки Дебет  91.4 - кредит 76.88
и дебет 76.88 - кредит 91.1

мне нужно, чтобы при определенном соответствии, 91.4 и 91.1 меняли на 08.3 - причем 08.3 всегда должен быть дебетом
11 Christina_
 
15.10.12
14:20
(5) 08.3, опечатка
12 miki
 
15.10.12
14:21
(11)не принципиально. У тебя всегда будет в дебет 91.2.
Таков твой код.
13 viktor_vv
 
15.10.12
14:22
(10) Ну вроде ж написали в чем проблема, проверь внимательно.
В твоем-то коде твой дебет, даже если выполнится условие всегда забьется кодом после условий.
14 PuhUfa
 
15.10.12
14:22
А еще можно использовать:
Если ... Тогда ... Иначе ... КонецЕсли;
а не присваивать сначало один счет а потом его переназначать если выполниться условие. Тогда и ошибок как в первом примере не будет...
15 Christina_
 
15.10.12
14:38
так...буду пробовать..спасибо. А то  тут напереставляла..стало получать то, что не получалось, и пропало то что было
16 Cthulhu
 
15.10.12
14:41
(10): прости, но напомнило.
"Морковьева смотрит на него снисходительно, как добрая учительница на отстающего ученика.
— Ну, как вам объяснить?.. Петров, вы разве не знаете, что такое «прозрачный»?
— Знаю.
— И что такое «красная линия», надеюсь, вам тоже не надо объяснять?
— Нет, не надо.
— Ну вот. Вы нарисуйте нам красные линии прозрачным цветом.\
...
— Ладно, — сдается Петров. — Бог с ним, с цветом. Но у вас там еще что-то с перпендикулярностью?..

— Да, — с готовностью подтверждает Морковьева. — Семь линий, все строго перпендикулярны.

— Перпендикулярны чему? — уточняет Петров.

Морковьева начинает просматривать свои бумаги.

— Э-э-э, — говорит она наконец. — Ну, как бы… Всему. Между собой. Ну, или как там… Я не знаю. Я думала, это вы знаете, какие бывают перпендикулярные линии, — наконец находится она.

— Да конечно знает, — взмахивает руками Сидоряхин. — Профессионалы мы тут, или не профессионалы?.."

(с) http://alex-aka-jj.livejournal.com/66984.html
17 Christina_
 
15.10.12
14:45
(16) =) я просто думала ошибка в коде может..какая-то тонкость, которая с опытом приходит)  всем спасибо за помощь!
18 viktor_vv
 
15.10.12
14:57
(17) Ты про ошибку в коде поосторожнее, а то придет Mikeware  и расскажет в каком коде у тебя ошибка :)).
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший