Имя: Пароль:
1C
1C 7.7
v7: Как в Операции в жур проводок программно заменить значения Дебета и Кредита?
,
0 ЮлияКорж
 
11.07.11
13:45
Как в проводках программно заменить значения Дебита и Кредита за определенный период
72 ЮлияКорж
 
12.07.11
11:35
Понятно,что одноразово да,а многоразово
73 zak555
 
12.07.11
11:36
сись
74 ЮлияКорж
 
12.07.11
11:36
Естественно я тренируюсь на копии у меня уже этих копий масса для тренеровок
75 zak555
 
12.07.11
11:37
Функция ЗаменитьНаСоотвествиеСчет(Счет, Соотвествие)    
   СчетСоотвествия = Соотвествие.Получить(Счет.Код);
   Если ПустоеЗначение(СчетСоотвествия)=1 Тогда
       Возврат 0;
   КонецЕсли;
   Счет = СчетСоотвествия;
   Возврат 1;
КонецФункции

СписокСоответсвияЗаменыДт = СоздатьОбъект("СписокЗначений");
СписокСоответсвияЗаменыДт.ДобавитьЗначение(СчетПоКоду("1121"), "112");
СписокСоответсвияЗаменыДт.ДобавитьЗначение(СчетПоКоду("1311"), "131");
СписокСоответсвияЗаменыДт.ДобавитьЗначение(СчетПоКоду("1041"), "104");

СписокСоответсвияЗаменыКт = СоздатьОбъект("СписокЗначений");
СписокСоответсвияЗаменыКт.ДобавитьЗначение(СчетПоКоду("1061"), "106");
СписокСоответсвияЗаменыКт.ДобавитьЗначение(СчетПоКоду("1321"), "132");
СписокСоответсвияЗаменыКт.ДобавитьЗначение(СчетПоКоду("1091"), "109");

Опер = СоздатьОбъект("Операция");

//....

ЕстьХотьОдноСоотвествие = 0;
Пока Опер.ПолучитьПроводку()=1 Цикл
   ЕстьХотьОдноСоотвествие = ЕстьХотьОдноСоотвествие + ЗаменитьНаСоотвествиеСчет(Опер.Дебет.Счет , СписокСоответсвияЗаменыДт);
   ЕстьХотьОдноСоотвествие = ЕстьХотьОдноСоотвествие + ЗаменитьНаСоотвествиеСчет(Опер.Кредит.Счет, СписокСоответсвияЗаменыКт);
КонецЦикла;
Если ЕстьХотьОдноСоотвествие <> 0 Тогда
   Опер.Записать();
КонецЕсли;
76 vladko
 
12.07.11
11:38
(57)
>Операция=СоздатьОбъект("Операция");
>Документ=СоздатьОбъект("Документ.Операция");
>Операция.НайтиОперацию(Документ);
Документ сперва найди по номеру, а потом его операцию уже ищи
77 zak555
 
12.07.11
11:48
странное молчание
78 Godofsin
 
12.07.11
12:00
Поулыбался )
79 zak555
 
12.07.11
12:04
авто у начальника ?
80 zak555
 
12.07.11
12:05
*автор
81 endru
 
12.07.11
12:05
Одно успокаивает -  завтра ТС обещала фотку выложить!!!
82 zak555
 
12.07.11
12:08
(81) не выложит
83 yra77
 
12.07.11
12:08
Ой, спать не буду - ждать время 00:01 завтрашнего дня.
84 yra77
 
12.07.11
12:09
(82) А я верю в людей. Нас Юлия не обманет, иначе будет игнорироваться 10 тысяч лет. А этого она же не хочет, я так думаю.
85 endru
 
12.07.11
12:10
(82) не может быть такого, мы так старались помочь
86 ЮлияКорж
 
12.07.11
15:21
Ребятки я извиняюсь,посмотрите сюда,что здесь не так, мне надо выбрать операцию 1000-ную, бо надо уже отдавать обработку
   Операция=СоздатьОбъект("Операция");
   Документ=СоздатьОбъект("Документ.Операция");
   Документ=Документ.НайтиПоНомеру("1000");
   Операция.НайтиОперацию(Документ);
   Операция.ВыбратьОперации();
       Пока Операция.ПолучитьОперацию()>0 Цикл        
               Операция.ВыбратьПроводки();
               Пока Операция.ПолучитьПроводку()="1" Цикл
                   Если Операция.Дебет.Счет.Код= СчетПоКоду("112") Тогда
                          Операция.Дебет.Счет.Код= СчетПоКоду("112.1");
                       ИначеЕсли Операция.Дебет.Счет.Код=СчетПоКоду("131") Тогда
                          Операция.Дебет.Счет.Код=СчетПоКоду("131.1");
                         ИначеЕсли Операция.Дебет.Счет.Код=СчетПоКоду("104") Тогда
                         Операция.Дебет.Счет.Код=СчетПоКоду("104.1");
                       КонецЕсли;
                             Если Операция.Кредит.Счет.Код=СчетПоКоду("106") Тогда
                                Операция.Кредит.Счет.Код=СчетПоКоду("106.1");
                           ИначеЕсли Операция.Кредит.Счет.Код=СчетПоКоду("132") Тогда
                               Операция.Кредит.Счет.Код=СчетПоКоду("132.1");
                           ИначеЕсли Операция.Кредит.Счет.Код=СчетПоКоду("109") Тогда
                               Операция.Кредит.Счет.Код=СчетПоКоду("109.1");
                       КонецЕсли;
                   КонецЦикла;        
           КонецЦикла;        
               Операция.Записать();
87 ЮлияКорж
 
12.07.11
15:27
Всё правильно???
88 ЮлияКорж
 
12.07.11
15:29
Пишет, что операция не выбрана
89 chief accountant
 
12.07.11
15:31
(88) Забей
90 aka AMIGO
 
12.07.11
15:33
(89) :-)))
91 ZDenis
 
12.07.11
15:55
(86) Вы из счета 112 сделали группу и субсчет 112.1? разве после реструктуризации не образуется в таком случает 112.0?
92 zak555
 
12.07.11
15:55
(86) ты в (75) код смотрела ?
93 ЮлияКорж
 
12.07.11
16:01
Мне надо в этом Коде посмотреть ошибки
94 ЮлияКорж
 
12.07.11
16:02
Запускается обработка и виснит,я уже субсчета убрала,поставила замену на другие счета
95 zak555
 
12.07.11
16:03
(93) это не код, а хня
96 ЮлияКорж
 
12.07.11
16:04
А,ЧТО НЕ ВЕРНО?
97 zak555
 
12.07.11
16:06
(96) мой код видела ?
98 aka AMIGO
 
12.07.11
16:09
(97) объяснил-бы ребенку, что "+ code" скрывает код 1с, и надо жмакнуть по этой конструкции, чтобы раскрыть текст :)
99 zak555
 
12.07.11
16:10
не умею
100 zak555
 
12.07.11
16:10
сотня
101 aka AMIGO
 
12.07.11
16:10
(99) плохи твои дела! :)
102 ЮлияКорж
 
12.07.11
16:11
Видела !!! Нормально,я скопировала, но он у меня много ошибок выбивает мне некогда его отлаживать,а в этом уже фигня осталась,тут ответ где-то на поверхности, синтаксичеких нет,запускается но виснит при отработке,мне надо выяснить почему он виснит,потому что не находит операцию циклится и не Записывает в БД
103 aka AMIGO
 
12.07.11
16:12
(102) вот и потратишь втрое больше времени..
104 zak555
 
12.07.11
16:13
(102) у меня ошибки ? о_О
105 aka AMIGO
 
12.07.11
16:13
(104) у неё! :)
106 ZDenis
 
12.07.11
16:15
(102) Ответь на (91) и возможно твоя обработка не понадобиться вообще
107 zak555
 
12.07.11
16:15
ZDenis у укр конф нету субсчетов, как у Россиян через "."
108 aka AMIGO
 
12.07.11
16:16
(104) наверняка выскакивает ""СписокСоответсвияЗаменыДт - не определена!" :)
109 FoXSkr
 
12.07.11
16:16
Операция=СоздатьОбъект("Операция");
   Документ=СоздатьОбъект("Документ.БухгалтерскаяСправка");
   Документ.НайтиПоНомеру("00000000008",Дата("30.06.2011"));
   Операция.НайтиОперацию(Документ.ТекущийДокумент());
   Операция.ВыбратьПроводки();
   Пока Операция.ПолучитьПроводку()=1 Цикл
       Если Операция.Дебет.Счет= СчетПоКоду("112") Тогда
           Операция.Дебет.Счет= СчетПоКоду("112.1");
       ИначеЕсли Операция.Дебет.Счет=СчетПоКоду("131") Тогда
           Операция.Дебет.Счет=СчетПоКоду("131.1");
       ИначеЕсли Операция.Дебет.Счет=СчетПоКоду("104") Тогда
           Операция.Дебет.Счет=СчетПоКоду("104.1");
       КонецЕсли;
       Если Операция.Кредит.Счет=СчетПоКоду("106") Тогда
           Операция.Кредит.Счет=СчетПоКоду("106.1");
       ИначеЕсли Операция.Кредит.Счет=СчетПоКоду("132") Тогда
           Операция.Кредит.Счет=СчетПоКоду("132.1");
       ИначеЕсли Операция.Кредит.Счет=СчетПоКоду("109") Тогда
           Операция.Кредит.Счет=СчетПоКоду("109.1");
       КонецЕсли;
   КонецЦикла;
   Операция.Записать();





1) Документ=Документ.НайтиПоНомеру("1000");
У тя переменная Документ = 1 или 0 после такого кода;
Документ.НайтиПоНомеру("1000"); //Просто без всякого Документ=Документ.НайтиПоНомеру("1000");


2) Операция.Кредит.Счет = СчетПоКоду("109.1");

3) А вообще ошибок валом юзай синтаксис помощьник читай какие параметры нужно передавать (какие обязательно какие необязательно), отладчик тебе в помощь дабы посмотреть что у тебя там творится.
110 ZDenis
 
12.07.11
16:18
(107) ух, не знал...
111 zak555
 
12.07.11
16:19
(108) всё определено
смотри внимательно код
112 ЮлияКорж
 
12.07.11
16:20
Нет,я знаю что надо объявлять переменную идентификатор списка
113 zak555
 
12.07.11
16:20
(109) разницу между документом и операцией, введенной в ручную, знаешь ?
114 aka AMIGO
 
12.07.11
16:21
(111) угу..ладушки, счас бухию открою, посмотрю..
115 zak555
 
12.07.11
16:26
(114) проверил ?
116 aka AMIGO
 
12.07.11
16:27
(115)да, я не прав категорически.. невнимательность моя подвела :)
117 Lepochkin
 
12.07.11
16:29
вот это развлекуха...
118 ЮлияКорж
 
12.07.11
16:32
Не виснит, запускается но пишет операция не выбрана
119 zak555
 
12.07.11
16:34
(118) её нужно найти
120 zak555
 
12.07.11
16:34
как и фотку
121 ЮлияКорж
 
12.07.11
16:36
Но пожайлуста,меня сегодня убьют и не кому будет фотку ставить, прямо сейчас у меня времени в запасе полчаса и всё
122 ОбычныйЧеловек
 
12.07.11
16:37
(121) вот интересно, если к тебе сантехник придет с такими же знаниями ты его долго терпеть будешь? может все таки честнее будет уволится?
123 ЮлияКорж
 
12.07.11
16:38
Сам увольняйся я работаю всего два месяца,вообще с 1С
124 aka AMIGO
 
12.07.11
16:39
(122) не грузи уж..

(121) что у тебя вместо //... в реальной обработке?.. это я просто так, интересуюсь, поскольку у меня проскальзывает мимо всех операторов  модуля
125 ОбычныйЧеловек
 
12.07.11
16:40
(123) видимо наглость - второе счастье.
126 ЮлияКорж
 
12.07.11
16:42
Я научусь!!!
127 aka AMIGO
 
12.07.11
16:42
(125) девочка в ужасе, а ты накатываешь.. 2 месяца в 1с - не так уж и много
128 chief accountant
 
12.07.11
16:42
Осталось 18 минут
129 aka AMIGO
 
12.07.11
16:44
(126) отладчик открывала? где авостит?


(128) кстати, 80% от времени на законченный программный продукт занимает отладка, а не кодирование :)
130 chief accountant
 
12.07.11
16:46
(129) Сабж в топку, учоис в руки. Ещё можно и успеть
131 zak555
 
12.07.11
16:49
(129) 80 % много

70 % - это только обдумать корректность решения =)
132 zak555
 
12.07.11
16:49
(128) +100

и бедт через матумбу
133 aka AMIGO
 
12.07.11
16:50
(131) 70% и входят в эти 80% :)
134 aka AMIGO
 
12.07.11
16:50
только после написания и начинаются думы и приходят светлые мысли :)
135 zak555
 
12.07.11
16:56
(134) должно быть наоборот, если рука набьита
136 aka AMIGO
 
12.07.11
16:57
(135) +1000 :))
137 zak555
 
12.07.11
16:59
ЮлияКорж ну как ?
138 chief accountant
 
12.07.11
17:00
Время вышло; ТС уволен; всем можно расслабиться
139 aka AMIGO
 
12.07.11
17:02
больше у ТС нет к вам доверия :)
угадайте с 3-х раз, будет фотка? :)
140 aka AMIGO
 
12.07.11
17:04
+139 у меня смутное впечатление, что она невнимательно читает посты.. совсем, как я :) по-диагонали :)
141 zak555
 
12.07.11
17:07
(138) если ещё жива ?
142 birkoFFFF
 
12.07.11
17:12
Это жесть...  Такого не бывает...
143 birkoFFFF
 
12.07.11
17:17
(142) Хотя... Нас сегодня новая программистка из отдаленного филиала, кстати тоже Юля и тоже на грани увольнения, озадачила вопросом: Как перенести список внеоборотных активов в справочник материалов и тоже что-то писать начала, боюсь спрашивать что она наваяла...
144 ЮлияКорж
 
12.07.11
17:23
А ТЫ АС,ОТВЕТЬ МНЕ НА ЭТОТ ВОПРОС,А Я НАПИСАЛА
145 birkoFFFF
 
12.07.11
17:27
(144) А теперь без крика и по русски, чтобы понятно было о чем ты...
146 ЮлияКорж
 
12.07.11
17:27
Ответь в чем была ошибка,проанализируй код почему выдавало Операция не выбрана
147 birkoFFFF
 
12.07.11
17:30
(146) Тут и анализировать нечего...
С чего ты взяла что ЭТО вообще должно работать ?
148 ЮлияКорж
 
12.07.11
17:31
А почему нет?
149 ZDenis
 
12.07.11
17:33
(148)
Документ=Документ.НайтиПоНомеру("1000")
После этого Документ будет равен 1 или 0
150 birkoFFFF
 
12.07.11
17:35
(148) Да тут помимо полного незнания принципов работы, синтаксиса и всего прочего, так еще и совершенно идиотские конструкции

Вот ты мне скажи, что ты тут пытаешься сделать ?

1) Операция.ПолучитьПроводку()="1"

2) Если Операция.Дебет.Счет.Код= СчетПоКоду("112") Тогда

3) Операция.Дебет.Счет.Код= СчетПоКоду("112.1");


И это еще малая часть бреда...

вот прям по пунктам напиши, 1,2,3
151 ЮлияКорж
 
12.07.11
17:36
Не надо передирать у FOXskr
152 birkoFFFF
 
12.07.11
17:38
Это даже похлеще чем у меня коллега на днях отчет писал, на управляемых формах, с конструкциями:

<Переменная> = Объект.Ссылка.ПолучитьОбъект().<имя реквизита>;
153 Конфигуратор1с
 
12.07.11
17:45
(151) так у вас получилось?
З.Ы. как для 2х месяцев опыта неплохо пишет. Я видел работающих спецов с опытом в 8 месяцев не способных в 7ке перебор документов написать
154 zak555
 
12.07.11
17:46
birkoFFFF смотри (75) - всё уже написано
155 birkoFFFF
 
12.07.11
17:47
(154) Да это понятно все, что уже все написано, я просто не понимаю, она сама свои ошибки вообще что-ли не видит ?
156 zak555
 
12.07.11
17:51
(152) уволила её ?
157 zak555
 
12.07.11
17:51
(155) есть подозрение, что это .... =)
158 birkoFFFF
 
12.07.11
17:52
(156) Это ОН )))
Не в моей компетенции )))
159 zak555
 
12.07.11
17:53
(158) ужас : опорочил пол
и какая должность ?
160 birkoFFFF
 
12.07.11
17:54
(159) Ведущий инженер-программист
Ну он как-бы на 8-ке недавно, семерошник...
161 zak555
 
12.07.11
17:58
(160) он не в курсе, что всё запросами пишется ?
162 birkoFFFF
 
12.07.11
17:59
(161) Я не спрашивала, неудобно как-то...
Он больше чем на 10 лет меня старше, не мне его учить...
163 zak555
 
12.07.11
17:59
(162) увольняй
164 birkoFFFF
 
12.07.11
18:01
(163) Я-ж говорю, не в моей компетенции...
165 chief accountant
 
12.07.11
18:05
По ходу автор соблазнил начальника, он её таки не убил и завтра ветка будет апаться с самого утра...
166 zak555
 
12.07.11
18:10
(164) главное уметь создавать президент =)
167 birkoFFFF
 
12.07.11
18:13
(166) Как-то не по человечески (((
Хорошо что я сейчас не начальник ))) Не нравилось мне увольнять, хотя и приходилось...
168 zak555
 
13.07.11
13:07
где продолжение ?
169 endru
 
13.07.11
13:09
а фотка есть уже
170 zak555
 
13.07.11
13:25
Ы =)
171 vladko
 
13.07.11
15:15
ответ ТС:
покажи итоговый код. Если как в (109), тогда у тебя комп сперва не нашёл бух.справку №00000000008 от 30.06.2011
А операцию у этого не найденного документа конечно не может он выбрать! ;)