Имя: Пароль:
1C
1C 7.7
v7: Перебор и счет документов
,
0 georg
 
17.06.14
10:28
ВсегоДокументов=0;
Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент()=1 Цикл
Если (Док.Вид()<>"РасходнаяНакладная") И(Док.Вид()<>"Счет") Тогда
Продолжить;
КонецЕсли;
ВсегоДокументов=ВсегоДокументов+1;
КонецЦикла;
Сообщить("Всего счетов и расходных накладных найдено: "+ ВсегоДокументов);


Перебираем документы в цикле и подсчитываем сколько введено расходных накладных и счетов. Но если будут другие документы посчитает же и другие??? Подскажите, что упускаю?
1 ДенисЧ
 
17.06.14
10:29
мда...
2 VladZ
 
17.06.14
10:30
(0) Забей. Не твое это.
3 Андрей_Андреич
 
naïve
17.06.14
10:33
(0) Вроде нормально все. А на (1) и (2) не обижайся - просто они слишком умные и старые - молодость не помнят.
4 georg
 
17.06.14
10:38
(3) Если (Док.Вид()<>"РасходнаяНакладная") И(Док.Вид()<>"Счет") Тогда
Продолжить;
КонецЕсли;
ВсегоДокументов=ВсегоДокументов+1;

Ну а если это будет, например, ПриходнаяНакладная?
5 Андрей_Андреич
 
naïve
17.06.14
10:42
(4) чтобы было нагляднее - пишем так:
Если (Док.Вид()="РасходнаяНакладная") Или(Док.Вид()<>"Счет") Тогда
ВсегоДокументов=ВсегоДокументов+1;
КонецЕсли;
6 Андрей_Андреич
 
naïve
17.06.14
10:42
Если (Док.Вид()="РасходнаяНакладная") Или(Док.Вид()="Счет") Тогда
ВсегоДокументов=ВсегоДокументов+1;
КонецЕсли;
7 Duke1C
 
17.06.14
10:45
(0) А что смущает тебя? Проверять не пробовал
8 georg
 
17.06.14
10:46
(5) вот это мне понятно!!! тут же сказано что все документы перебираем и условие только не равно расходнаянакладная и счет.
например.
Если ПриходнаяНакладная(условие не выполнается!!!!) Тогда
ВсегоДокументов=ВсегоДокументов+1


(7) Проверял. Работает. Но что-то тут мне неизвестно
9 georg
 
17.06.14
10:54
+(5) или точнее
Если ПриходнаяНакладная(условие не выполняется!!!!) Тогда
Продолжить

оператор ЕСЛИ проверяет, выполняется ли поставленное условие
или вы просто запомнили это и не паритесь?
10 Андрей_Андреич
 
naïve
17.06.14
10:57
Функция СкокаДоков(ВидДока)
Перем Доков, Док;
Док=СоздатьОбъект("Документ."+ВидДока);
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент()=1 Цикл
Доков=Доков+1;
КонецЦикла;
Возврат Доков;
КонецФункции

ВсегоДокументов=СкокаДоков("РасходнаяНакладная")+СкокаДоков("Счет");
11 georg
 
17.06.14
12:21
(10) спасибо вам, конечно. как это реализовать по-другому у меня вопрос не стоит. С условием оператора ЕСЛИ не понятно. В книге эта возможность оператора никак не декларируется...
12 Ясный перец
 
17.06.14
12:41
Да тут не в ЕСЛИ дело, а в правильности поставленного условия
ИМХО
13 georg
 
17.06.14
12:48
(12) оператор ЕСЛИ проверяет, выполняется ли поставленное условие. Условие выполняется если оператор не находит РАСХОДНАЯНАКЛАДНАЯ и СЧЕТ. Также условие не выполняется когда оператор находит, например, ПриходнаяНакладная, но по какой-то неизвестной мне причине этот документ не считается!!!
14 Мимохожий Однако
 
17.06.14
12:54
Добавь перед условием
Сообщить("Обрабатывается"+глПредставлениеДокумента(Док.ТекущийДокумент()));

и после условия
Сообщить("Попал в счетчик "+глПредставлениеДокумента(Док.ТекущийДокумент()));
15 Ясный перец
 
17.06.14
12:59
(13) По-моему Вы вы запутались с логическими операторами.
Оператор И подразумевает одновременное выполнение обоих условий. В вашем случае разумнее использовать оператор ИЛИ.
То есть:
Если (Док.Вид()<>"РасходнаяНакладная") ИЛИ (Док.Вид()<>"Счет") Тогда
...
16 georg
 
17.06.14
13:02
(15) нет. См. (13)
17 oslokot
 
17.06.14
13:07
18 georg
 
17.06.14
13:09
думал это элементарный вопрос для программиста
19 Андрей_Андреич
 
naïve
17.06.14
13:10
(18) да мы здесь все тупые - доказано давно
20 Ясный перец
 
17.06.14
13:11
(16) Ну, извините...
21 georg
 
17.06.14
13:11
(19) прошу не обижаться)
22 DCKiller
 
17.06.14
13:14
Ща ветка станет таким источников лулзов.
Автор, если ты не хочешь массового глумления над своей персоной, советую принять решение в (10). Вообще эту фигню можно массой различных способов решить.
23 georg
 
17.06.14
13:15
Так, известный либеральными взглядами политолог Х, ныне работающий младшим помощником старшего референта третьего секретаря одной из евроструктур, полагает, что «деконструкция архаичных социальных страт на фоне аутентичного консенсуса элит, постулирующих вестернизированный дискурс в процессе онтологического фундирования постиндустриального мультикультурализма, редуцирует транспарентность электоральных квазимодуляций до статуса клаттера».
24 georg
 
17.06.14
13:16
Не менее известный политолог национально-демократического направления Y, работающий в Оклахомском университете разносчиком пиццы и контрацептивов, возражает: «Не бывае дэмакратыі без нацыі і не існуе дэмакратыі без незалежнай дзяржавы, а незалежнасці не iснуе без «пятай калёны», якая зьнішчае дзяржаўнасць».
25 georg
 
17.06.14
13:17
го коллега - интеграционист Z, подрабатывающий на Рублевке укладкой ламината в коттеджах сотрудников администрации президента РФ, отрицает обе процитированные точки зрения: «Рыночная цена демократии равна оптовой цене суверенитета, а стоимость последнего рассчитывается исходя из среднеевропейской цены энергоносителей».
26 georg
 
17.06.14
13:17
Точку в этом научном споре ставит политолог-патриот О, преподающий искусство рукопашного боя в Академии МВД: «Многие думают, что демократия - это то, что можно и нужно. Нет, демократия - это то, что можно, если нужно».
27 PuhUfa
 
17.06.14
13:18
Троль? -)
28 georg
 
17.06.14
13:19
спасибо всем, кто пытался помочь.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.