Продолжать дальше ошибка

Предложения с «дальше продолжать»

Далее, в прошлом году, пара поместила Джейд в государственный детский дом в Гонконге. По их словам, они не могли дальше продолжать заботиться о девочке из-за ее эмоциональной отстраненности.

Честно говоря, я не могу дальше продолжать рисковать жизнями гонщиков.

Послушай, я знаю, что ты расстроена из-за разрыва со Стивом но ты не можешь так дальше продолжать.

И если ты хочешь и дальше продолжать мыть полы, чтобы прокормить семью, рекомендую тебе сделать так, чтобы это место сверкало, когда его будут проверять.

Я понял, что не могу и дальше продолжать делать одно и то же, и ожидать другого результата.

Но его астма осложняется повреждениями в лёгких и не думаю, что мы сможем так дальше продолжать.

Другие результаты

Во время продолжавшейся кампании Карла XII против Августа II Стенбок командовал авангардом короля, состоявшим из полка Даларны и других полков.

Продолжавшийся 22 часа 42 минуты полет превзошел стандартную проектную дальность полета самолета-200LR и был занесен в Книгу рекордов Гиннесса.

Белая революция была далеко идущей серией реформ в Иране, начатых в 1963 году шахом Мохаммедом Резой Пехлеви и продолжавшихся до 1978 года.

Диего возобновил тяжбу в 1512 году, продолжавшуюся до 1536 года, а дальнейшие споры продолжались до 1790 года.

Понимая всё, мы продолжаем жить дальше И это самое худшее, что мы можем сделать.

Мы добегаем до наших разрушенных траншей, вновь захватываем их и продолжаем наступать дальше.

Но растущий евро, который поднимается еще выше из-за чрезмерно преждевременного ужесточения ЕЦБ финансовой политики — подразумевает более реальную оценку, которая далее продолжает подрывать конкурентоспособность.

Поскольку численность населения продолжает расти, площадь земель, которые можно использовать для удаления отходов, сокращается, и отходы приходится перевозить на более далекие расстояния.

Так как китайская экономика продолжает замедляться, я считаю, РБА будет облегчать политику и дальше, и я по-прежнему придерживаюсь медвежьего взгляда на AUD.

Учитывая, что добыча нефти в США продолжает расти, и объемы нефтепереработки приближаются к сезонному максимуму, вряд ли будет дальнейшее значительное уменьшение запасов сырой нефти.

Следовательно, она продолжает оставаться в сильном нисходящем тренде, и по-прежнему на пути дальнейших потерь.

Поэтому вполне разумными представляются действия Кремля, направленные на укрепление своей обороны на Дальнем Востоке — особенно с учетом того, что напряженность продолжает увеличиваться.

Россия продолжает наращивать военный потенциал на Дальнем Востоке. Теперь она удваивает количество зенитных систем С-400 в регионе.

Ты думаешь, бог-то далеко, так он и не видит? -продолжает морализировать Порфирий Владимирыч, — ан бог-то — вот он он.

Пульс 80% и продолжает падать, дали восемь литров кислорода.

Наконец задавил смех, идет дальше вдоль ряда машин, продолжает пояснения.

Поверь мне я дала Одилии пищу и кров, а она меня продолжает обворовывать.

Хотя дальнейшие судебные иски не материализовались, этот вопрос продолжает жить в средствах массовой информации и политических кругах теми, кто продвигает необходимость реформы деликта.

Он работал над введением запрета на курение в Англии и продолжает кампанию за дальнейшие действия по борьбе с курением.

Молочный белок продолжает подвергаться дальнейшему ухудшению в процессе переработки и хранения.

Молочный белок продолжает подвергаться дальнейшему ухудшению в процессе переработки и хранения.

Потомакфевер продолжает обвинять меня, и любые ответы, которые я даю, просто побуждают к дальнейшему обсуждению вопросов, которые не являются центральными в статьях.

Таким образом, характерная радиально-кольцевая планировка продолжает определять дальнейшее развитие Москвы.

Томский продолжает утверждать, что граф дал ей выигрышную комбинацию карт, и она отыграла достаточно, чтобы выплатить свой карточный долг.

В цикле перебираю ip и useragent для парсинга сайта, некоторые из ip не отвечают и после этого выходит исключение, и цикл идёт дальше, так вот, как сделать так чтобы после исключения он не продолжал дальше, пропуская то место где вышло исключение, а снова стартовал с того места где вышло исключение, но уже с другим ip, т.к иначе он пропускает страницу.

def main():

    url = 'http://old.toto-info.co/DataService.svc/GetMaxPrizeCoupons'
    useragents = open("useragents.txt").read().split('\n')
    proxies = open("proxies.txt").read().split('\n')

    for i in range(0,200,20):
        try:
            a = (uniform(1, 2))
            sleep(a)
            StartFroms = i
            useragent = "'" + choice(useragents) + "'"
            proxy = {'http': 'http://' + choice(proxies)}
            get_html(url,useragent,proxy,StartFroms)
        except:
            print("not working")

if __name__ == '__main__':
    main()

задан 21 мая 2017 в 8:23

Паша Васильев's user avatar

Нужно в случае возникновения исключения запускать цикл for с той точки, где оно возникло:

start = 0  # переменная для хранения точки входа в for  
while start < finish:
   try:
      for i in range(start, finish, step):
         do_something()
         if i >= finish - step:
            start = finish  # для выхода из внешнего цикла
      except:
         start = i  # перезапускаем for c точки исключения

Пример:

from random import randint

start = 0
finish = 4
while start < finish:
    try:
        for i in range(start, finish):
            print i
            if randint(0, 1):
                raise ValueError(i)
            if i >= finish - 1:
                start = finish
    except ValueError as e:
        print "exception:", e
        start = i

Вывод:

D:\Python\python.exe D:/PycharmProjects/tl/aa.py
0
exception: 0
0
exception: 0
0
1
2
3
exception: 3
3

Process finished with exit code 0

ответ дан 21 мая 2017 в 8:42

andy.37's user avatar

andy.37andy.37

7,46112 серебряных знаков31 бронзовый знак

5

или воспользоватся рекурсией

def main(_i=0):
    for i in range(_i,200,20):
        try:
            pass
        except:
            return main(i)  # продолжить с ошибочного индекса

или

def proxy_get_html(url, useragent, StartFroms):
    proxy = {'http': 'http://' + choice(proxies)}
    try: get_html(url, useragent, proxy, StartFroms)
    except: return proxy_get_html(url, useragent, StartFroms)
    else: return True

def main():
    for i in range(0,200,20):
        proxy_get_html(url, useragent, proxy, StartFroms)

ответ дан 22 мая 2017 в 12:59

vadim vaduxa's user avatar

vadim vaduxavadim vaduxa

8,93214 серебряных знаков24 бронзовых знака

Заявление об ошибке Excel VBA

Оператор VBA On Error — это тип механизма обработки ошибок, который используется для указания кода, что делать, если он обнаруживает ошибку любого типа, обычно, когда код обнаруживает ошибку, выполнение останавливается, но с этим оператором в коде выполнение код продолжает работу, поскольку в нем есть набор инструкций, которые необходимо выполнить при обнаружении ошибки.

Предвидение ошибки в коде делает вас профессионалом в кодировании VBA. Вы не можете сделать код на 100% эффективным, даже если вы так или иначе уверены в своем коде, так как это может вызвать ошибку.

Выявить и обработать все виды ошибок практически невозможно, но у нас есть разные способы обработки ошибок в VBA. Во время написания кода вы можете не ожидать, что код ошибки может возникнуть, но если возникнет какая-либо ошибка, вы потратите больше времени на отладку, чем на написание самого кода.

Что такое ошибка?

Ошибка — это не что иное, как строка кода, которая не может быть выполнена из-за функциональности или неправильного кода. Поэтому постарайтесь предвидеть ошибку и обработать ее.

Например, если вы попытаетесь удалить лист, которого нет, очевидно, что мы не сможем выполнить эту строку кода.

Ошибка бывает трех типов: одна — ошибка компиляции из-за необъявленных переменных. Второй — ошибка ввода данных из-за неправильного ввода кодировщиком, а третий — ошибка времени выполнения из-за того, что VBA не может распознать строку кода. Для попытки получить доступ или работать с листом или книгой, которых там нет.

Но у нас есть инструкция в VBA для обработки всех этих типов ошибок, например, инструкция «On Error».

Типы сообщений об ошибках

Ключевым моментом обработки ошибок в VBA является оператор «On Error». Например, при ошибке «возобновить следующую строку», «перейти к другой строке или перейти к ней» и т. Д.

Оператор On Error имеет три вида операторов.

  1. GoTo 0  означает, что всякий раз, когда возникает ошибка времени выполнения, Excel или VBA должны отображать окно сообщения об ошибке с указанием типа обнаруженной ошибки. Как только VBA выполняет код, он отключает все обработчики ошибок в этом конкретном блоке кода.
  2. Resume Next означает, что всякий раз, когда возникает ошибка, этот оператор инструктирует Excel игнорировать эту ошибку и переходить (возобновить следующую) к следующей строке кода без отображения каких-либо сообщений об ошибках. Это не значит, что он исправит ошибку, скорее он просто проигнорирует ошибку.
  3. GoTo [метка] означает, что всякий раз, когда VBA обнаруживает ошибку, переходите к назначенной метке. Это заставляет код перейти к определенной строке, предоставленной кодировщиком.

3 основных способа обработки ошибок в VBA

Вы можете скачать этот шаблон VBA при ошибке здесь — Шаблон VBA при ошибке

# 1 — При ошибке продолжить дальше

Предположим, вы делите значение 20 на 0 и объявили переменную, чтобы присвоить ей результат деления.

Код:

 Sub OnError_Example1 () Dim i As Integer i = 20/0 End Sub 

Если вы запустите этот код, он выдаст ошибку, указанную ниже.

Таким образом, вы не можете разделить любое число на нулевое значение. Номер ошибки времени выполнения — 11, т.е. деление на ноль.

Теперь добавлю в код еще одну строчку.

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число i = 20/0 j = 20/2 End Sub 

Теперь я добавлю следующее вверху утверждение При возобновлении ошибки.

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число при ошибке Продолжить следующий i = 20/0 j = 20/2 End Sub 

Теперь, если я выполню этот код, он не выдаст мне никаких сообщений об ошибках, а выполнит следующую строку кода, т.е. j = 20/2.

# 2 — При ошибке GoTo Label

Я объявил три переменные.

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число, k как целое число 

Для всех этих трех переменных я назначу расчет деления.

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число, k как целое число i = 20/0 j = 20/2 k = 10/5

Результат всех этих трех вычислений будет показан в окне сообщения.

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число, k как целое число i = 20/0 j = 20/2 k = 10/5 MsgBox "Значение i равно" & i & vbNewLine & "Значение j равно "& j & _ vbNewLine &" Значение k равно "& k & vbNewLine End Sub 

Теперь я попытаюсь выполнить этот код, поскольку вычисление «I» некорректно, мы получим ошибку времени выполнения 11.

Теперь я добавлю заявление «При ошибке возобновить следующее».

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число, k как целое число при ошибке Возобновить Далее i = 20/0 j = 20/2 k = 10/5 MsgBox "Значение i равно" & i & vbNewLine & " значение j равно "& j & _ vbNewLine &" Значение k равно "& k & vbNewLine End Sub 

Если я выполню это, он пропустит вычисление «I» и выполнит оставшиеся два вычисления, и результат будет следующим.

Теперь вместо «При ошибке возобновить следующий» я добавлю «При ошибке GoTo KCalculation»

Код:

 Sub OnError_Example1 () Dim i как целое число, j как целое число, k как целое число при ошибке GoTo KCalculation: i = 20/0 j = 20/2 KCalculation: k = 10/5 MsgBox "Значение i равно" & i & vbNewLine & "Значение j равно" & j & _ vbNewLine & "Значение k равно" & k & vbNewLine End Sub 

Note: Here “KCalculation” is the label name I had given, you can give your own label name without any space.

Now if I execute this line of code it will not jump to the next line rather it will jump to the label name I have entered i.e. “KCalcualtion”. Here it will ignore the error given by “I” and also it will not execute “j” calculation but straight away it jumps to “KCalcualtion”.

#3 – Print Error Number in VBA

At the end of the code, we can also print the error number in a separate message box. The following line of code will do this job.

Code:

Err.Number

Now I will run this code first message box will show the calculation results.

Click on OK, it will show one more message box to show the error number.

We go 11 as the result i.e. Division by Zero.

We can also get the error description instead of the number. We just need to change the code, below is the code.

Code:

Err.Description

It will show a description like this.

Things to Remember

  • After entering “On Error Resume Next” at the end of code don’t forget to add the statement “On Error GoTo 0”
  • The label name should be the same in both places.
  • Label names need not be defined well in advance.
  • In the end, always see what was the error occurred through the separate message box.
Проведение внутри проведения — как пропустить ошибки ☑ 0

3flight

24.06.11

13:38

В процедуру «ОбработкаПроведения» Объекта «А» я добавил вызов процедуры написанного мной общего модуля, где я из таблицы в этом объекте получаю ссылки на другие объекты, получаю объекты, меняю их и провожу с помощью «ОбъектБ.Записать». Делаю я это внутри блока «Попытка-Исключение», дабы уйти от ошибок проведения, если они вдруг будут. Мне нужно чтобы 1С попробовал провести ОбъектБ, и если есть ошибка, продолжил дальше. Но так не работает, если есть ошибка в проведении Объекта «Б», то не проводится и Объект «А». (т.е. ничего не проводится). Как обойти?

Код:

[CODE]Процедура ИзменитьСтатусыЗаказовНаОснованииПоступленияБДС(ОбъектПоступлениеБДС) Экспорт

   Для Каждого РасшифровкаПлатежа Из ОбъектПоступлениеБДС.РасшифровкаПлатежа Цикл

       Попытка

           Заказ = РасшифровкаПлатежа.Заказ.ПолучитьОбъект();

           Если Заказ.Статус = Перечисления.СтатусыЗаказовКлиентов.Согласован Или

                Заказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КОбеспечению Тогда

               Заказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КОтгрузке;

               Для Каждого СтрокаТовар Из Заказ.Товары Цикл

                   СтрокаТовар.ДатаОтгрузки = ТекущаяДата();

               КонецЦикла;

           КонецЕсли;

           Попытка

               Заказ.Записать(РежимЗаписиДокумента.Проведение);

           Исключение

           КонецПопытки;

       Исключение

       КонецПопытки;

   КонецЦикла;

КонецПроцедуры[/CODE]

1

Ksandr

24.06.11

13:40

делать в событии ПриЗаписи

2

3flight

24.06.11

15:04

Создал процедуру «ПриЗаписи(Отказ)», поместил вызов процедуры «ИзменитьСтатусыЗаказовНаОснованииПоступленияБДС(ОбъектПоступлениеБДС)» в неё, но результат тот же.

3

Defender aka LINN

24.06.11

15:07

(0) Консерваторию менять надо

4

3flight

24.06.11

15:13

Порой меня поражает насколько «бывалые» пользователи форума любят бесполезно нафлудить, подразумевая свою высокую осведомленность и одновременно полную неосведомленность автора в обсуждаемой теме. Кстати, как тут в ответе сослаться на другой ответ? (Типа «(3)» )

5

3flight

24.06.11

15:29

(3) — Подскажите, пожалуйста, если знаете, как реализовать.

6

3flight

24.06.11

16:41

Кто-нибудь? Очень хочется решить эту задачу до следующей недели. Я уверен что тут какая-то принципиальная ошибка. Я не учился программированию на 1С, так что могу не знать каких-то нюансов или даже основ. Можно конечно делать проверки вручную, и вызывать метод «Записать» только если ошибок точно не будет, но это получится как-то громоздко.

7

unregistered

24.06.11

16:49

(4) >> Порой меня поражает …

И меня тоже.

1С поддерживает вложенные транзакции, но следует правилу — либо всё, либо ни чего. Т.е. если произошли ошибки в любой из вложенных транзакций, то отменяется вся транзакция целиком.

Это как бы давно известный факт.

Ну а менять при записи или проведении объекта другие объекты — не есть хорошо. Лучше поменять логику, алгоритм.

8

unregistered

24.06.11

16:51

+ к (7):

Как вариант — хранить всю эту ересь про статусы заказов и даты отгрузки не в документе Заказ, а в регистре сведений.

9

fisher

24.06.11

16:53

(0) Никак. Народ бает, что попытка/исключение реализовано в виде неявной транзакции. Так что исключение гарантированно откатывает все вышестоящие транзакции.

10

Сияющий Асинхраль

24.06.11

16:53

(5) Вообще, проведение одного документа в модуле проведения второго уже не первый год, считается очень плохим тоном, поэтому и было сказано (3)

11

Живой Ископаемый

24.06.11

16:53

зачем заказы перепроводить?

13

Господин ПЖ

24.06.11

16:57

подписка спасет любителя извратов…

14

unregistered

24.06.11

17:05

(13) Хммм… на какое событие?

15

3flight

24.06.11

17:07

Спасибо за ответы! Попробую реализовать задачу иначе. (11) Заказы перепроводить чтобы проверялись условия оплаты и прочее, и статус менялся только если его можно поменять. Нужно сделать что-то вроде автоматизации статусов, чтобы их меняла программа при соответствующих событиях (в основном это оплата), а не люди.

16

Живой Ископаемый

24.06.11

17:10

2(15) еще раз — зачем перепроводить целый документ если нужно только поменять статусы, то есть изменить что — какой-то РС?

Вот неужели когда тебе задают вопрос «Зачем ты одел шубу» ты начинаешь рассказывать что это хорошее вложение денег, она удобная, и так далее, вместо того чтобы сказать «чтобы согреться когда на улице холодно»?

17

3flight

24.06.11

17:11

(12) Я сисадмин в небольшой организации %) Мне платят всего 180р в час.

18

3flight

24.06.11

17:14

(15) Я пошёл простым путём. Склад по статусам может определить, с какими заказами работать. Поэтому я решил сделать, чтобы статусы менялись автоматически, чтобы избавить людей от ненужной работы. Я не знаю как поменять статус и потом сохранить документ, не используя метод «Записать», который проводит документ.

19

Живой Ископаемый

24.06.11

17:15

2(18) нет, вы пошли неправильным, неналазящим на голову здоровым людям и системе путем… Надо было просто озвучить конечную цель и вам бы подсказали…

20

3flight

24.06.11

17:37

19)

21

3flight

24.06.11

17:40

(19) А теперь подскажут? Задача — чтобы статусы заказов менялись на ‘к обеспечению’ или ‘к отгрузке’ автоматически при проведении поступления безналичных дс, в  зависимости от выполнения условий оплаты.

22

Живой Ископаемый

24.06.11

17:46

2(21) какой регистр меняется после вашего кода в случае все-таки успешного перепроведения заказа?

23

3flight

24.06.11

18:32

(22) Регистр? У меня меня меняются реквизиты «статус» у заказов. потом склад смотрит заказы, через форму списка заказов, где и видят статусы.

24

3flight

24.06.11

18:33

(22) конфигурация на основе УТ 11.0.5.4

25

vs84

24.06.11

18:40

(17) А что сисадмин в 1Се делает?

Сварщики, сисадмины — все хотят вкусить запретного плода.

26

Jolly Roger

24.06.11

18:50

(17) Я очень бедный… я год не был в бане… я старый… меня девушки не любят… Я сисадмин в небольшой организации %) Мне платят всего 180р в час…

зы: извините, не удержался…

27

3flight

24.06.11

19:11

(26) :D а по теме что-нибудь?

(25) Я делаю «всё» :) что связано с компами

28

Jolly Roger

24.06.11

19:15

(27) по теме тебе уже все сказали — вложенные транзакции не поддерживаются…

29

Живой Ископаемый

24.06.11

20:42

2(23) в коде у тебя меняется вообще дата…

а раз проводить не нужно то записывай без режима проведения:

Заказ.ОбменДанными.Загрузка = Истина;

Заказ.Записать(РежимЗаписиДокумента.Запись);

таким образом ошибка может возникнуть только в одном исключительном случае — если этот же Заказ записывается или заблокирован кем-то другим

30

NcSteel

24.06.11

20:52

(0) Нужен РН .

32

Amiralnar

25.06.11

06:15

(30) Не обязательно. Можно РС.

А лучше к документу свойство настроить, его и в отчете видно, и поменять легко..

33

Jolly Roger

25.06.11

07:33

(29) ну так транзакция все-равно откатится…

34

3flight

25.06.11

11:16

(29) Меняется Заказ.Статус, а СтрокаТовар.ДатаОтгрузки устанавливается для того чтобы не было ошибки проведения (нельзя ставить статус «К отгрузке», если не заполнены даты отгрузки — документ не проведётся). Если записывать без проведения, то наверно не будут выполняться проверки, которые выполняются при проведении? А мне они нужны. Мне нужно чтобы программа попробовала поменять статус, но не сделала этого если какие-то условия не выполняются. Единственная причина, по которой я использую проведение — именно запуск всех проверок.

(31) Я уже давно умер

(28) Это я понял, значит видимо буду делать без вложенных транзакций, придется отдельную кнопку повесить в форму документа для вызова этой процедуры.

(32) Свойство документа? Тут вопрос принципиального удобства использования статусов — они уже есть, они для этого и сделаны ведь, и для разных статусов уже написан код всяческих проверок, который не хотелось бы дублировать или экспортировать. Пойду почитаю про свойства документа. Однако совершенно не хочется вводить отдельную систему статусов в довесок к существующей, это как-то странно — дублировать функционал стандартной конфигурации другим способом.

35

Живой Ископаемый

25.06.11

11:30

2(34) а вот зачем тебе чтобы они выполнялись?

чувак, это попытка усидеть на двух стульях. Либо полноценное проведение, но тогда последовательное и не внутри, с возможными ошибками и их обработкой… Либо то что ты хочешь

36

3flight

25.06.11

11:50

(34) Пример: бухгалтер вводит поступление БДС. Какая-то часть заказа оплачивается (не 100%). Нужно, чтобы программа, незаметно для бухгалтера (которому на заказы всё равно) проверила, достаточно ли оплачено по заказу, чтобы перевести его обработку в логистику (статус «к обеспечению») или чтобы начать его отгружать («к отгрузке») и если «да» то поменяла бы статус на соответствующий. Бухгалтер только жмёт «провести и закрыть» в своём поступлении БДС, потому что всё остальное можно сделать кодом, не заставляя бухгалтера проверять вручную условия оплаты по заказу и проставлять или не проставлять соответствующий статус. Ключевой пункт «если да» — вот зачем мне проверки, которые выполняются при проведении. Там проверяется оплата, дата отгрузки и всё остальное. Будет неправильно, если какой-нибудь недозаполненный заказ перевелся в «к отгрузке», потому что склад потом будет иметь проблемы с этой отгрузкой.

37

vmv

25.06.11

12:13

мы сделали справочник «Статусы» и реквизит «Статус» в документах и все, зачем это гемор с кодом.

Для юзера все должно быть наглядно, очевидно и аццке жостко.

Инструментарий БП слишком сложен для многих реальных бизнес-процессов и нагружать им юзера похабно

38

ДенисЧ

25.06.11

12:17

(36) я бы в регламенты эту проверку перенес…

39

dimoff

25.06.11

12:17

(29) «таким образом ошибка может возникнуть только в одном исключительном случае — если этот же Заказ записывается или заблокирован кем-то другим»

Есть метод Заблокирован(), если его проверять тогда ошибки не возникнет

(34) «Это я понял, значит видимо буду делать без вложенных транзакций, придется отдельную кнопку повесить в форму документа для вызова этой процедуры.»

Не надо, если меняешь реквизит делай это через Записать() без всяких проведений и никаких ошибюок не возникнет.

40

Живой Ископаемый

25.06.11

12:23

2(39) ошибок-то не возникнет — но тогда и статус не сменится… а если не сменится статус — должен ли проводиться изначально проводимый документ? Кк по мне — то нет, но автор вроде  хочет именно этого.

41

dimoff

25.06.11

12:24

(40) Это уже вопрос логики автора, которой он может управлять по своему усмотрению

42

3flight

25.06.11

13:25

(38) Думал об этом, наверно будет лучше всего. Не создавал ещё ни разу собственных регламентных заданий, поэтому не знаю как это делать. Щас поковыряю, разберусь наверно =)

(40) Конечно, если заказ уже «к отгрузке» или «к обеспечению», то я его проводить заново не буду, я его вообще пропущу. А вот «согласованные» придется проводить, чтобы проверки запускать.

(37) Вы имеете ввиду что можно задействовать БП, чтобы не писать код? БП для меня тема нераскрытая, поэтому я до понедельника наверно не успею эту штуку освоить. И с БП ведь придется всю фирму переучивать работе.

43

NcSteel

25.06.11

14:22

(32) РС нельзя схлопнуть.

44

3flight

25.06.11

14:58

(43) Что значит «схлопнуть»?

45

vmv

25.06.11

15:03

(42) думаю вам и до осени БП — не освоить, лучьше свою статустную простую подсистему сделать.

Не трать время на БП, пусть разработчики типовых ваяют)

46

3flight

25.06.11

15:31

Итого — сделал регламентное задание, которое каждые полчаса проверяет ПБДС за последние 60 минут и прогоняет по указанным в них заказам нужные проверки и, если нужно, меняет статусы и перепроводит. Всем спасибо за подсказки и пояснения! По-моему, получилось вполне оптимально.

47

Сияющий Асинхраль

25.06.11

15:36

(42) На самом деле это сделано реквизитом в документе совсем не случайно, так сделано потому, что очень часто достоверно сказать оплачен заказ или нет нельзя. Скажем у покупателя было несколько оплат а учет ведется по основновному договору то оплаты можно будет определить только по ФИФО или среднему, что не всегда соответствует действительности. Можно конечно заказы всегда однозначно привязывать к оплатам, но тогда, может взвыть Ваша бухгалтерия, посему я бы посоветовал не мудрствовать лукаво, а оставить все как есть, если же очень хочется сделать нечто подобное, то ввести периодический регистр сведений с измерениями: Организация, контрагент, Заказ и ресурсом Статус, но, опять таки как будет автоматом рассчитываться закрытие некоторого заказа не очень представляю

48

vmv

25.06.11

15:41

(47) закрываться заказ будет по последнему платежу в статусе «Оплачено», который «закроет» сумму по всему заказу

49

3flight

25.06.11

15:48

(47) Бухгалтерии вообще статусы не нужны. У нас бухгалтерия в УТ только разносит оплату и больше ничего не делает. Основная работа у них в БП, куда производится выгрузка. А склад всегда использует статусы — если нужно отгрузить, ставит «К отгрузке», если программа не даёт — звонят менеджеру и говорят что так и так — условия не выполнены — либо меняйте условия либо не отгружаем. Автомат я делаю для того чтобы «если нужно отгрузить» происходило в том числе автоматически. Сейчас у нас менеджер звонит на склад и говорит «отгружайте пожалуйста, клиент оплатил». Эту работу можно автоматизировать. Договора у нас никак на проверку оплаты не влияют.

50

Сияющий Асинхраль

25.06.11

15:50

(48) Вот именно, это автоматическое закрытие, но очень часто платежи от контрагентов приходят не по последнему заказу и даже не по первому, а по тому, который ему нужнее в данный момент, причем это происходит очень часто, такой вариант при наличии нескольких заказов практически не автоматизируется…

51

Сияющий Асинхраль

25.06.11

15:51

(49) Еще раз прочитай (50)

52

vmv

25.06.11

15:52

(49) когда вы продавец, то да — договора делать статусными не обязательно, вас беспокоит оплата контргента и наличие у вас на складе спецификации поставки ему.

А когда вы покупатель и договора долгоиграющие на месяцы, годы, то …это уже совсем другая история)

53

vmv

25.06.11

15:54

(50) Вам нужно рабочее место и роль «Обработка платежей», пользователь этой роли будет делать сопоставление(связь) платежей с заказами(договорами). Это сопоставление должно иметь авто/ручные/аналитические режимы

54

Сияющий Асинхраль

25.06.11

15:54

Или еще вариант, два заказа — ранний на большую сумму и поздний на малую — клиент закрывает оплату по второй сумме (малой), а у тебя эта проплата скинется на первый заказ не зккрывая и первый заказ и второй…

55

vmv

25.06.11

15:58

(54) читай (53) — без статусов и рабочего места по обработке платежей от клиен-банков такое решить только в коде НЕ реально. мы год ломали голову пока пришли к простым и логичным решениям

56

3flight

25.06.11

15:58

(50) Бухгалтер при вводе ПБДС подвязывает сумму и к договору и к заказу, т.к. когда клиент платит, он указывает в платёжке, какой заказ он оплачивает. У нас так, по крайней мере. Моя автоматизация проверяет свежие ПБДС. Не совсем понимаю как договор может помешать в этой схеме автоматически поменять статус заказу.

(51) Как я мог прочитать (50), если мой ответ был раньше? :D

57

Сияющий Асинхраль

25.06.11

15:58

(53) Это не мне нужно, это ТС нужно, я и говорю, что данный процесс не сильно поддается алгоритмизации, точнее его нельзя сделать автономным без вмешательства человека, поэтому и не стоит делать регламентных заданий, должно быть нечто вроде обработки которую запскает менеджер и только менеджер решает по какому заказу прошла проплата, единственное что стоит сделать для упрощения — это дать возможность выбирать менеджеру сразу группу заказов в которых по нажатию некой кнопки «Изменить статус» менять статус групповым образом…

58

vmv

25.06.11

16:03

естественно без участия человека тут никакой регламент не спасет. Пример навскидку, «так все по фиг — по этому договру немедленно сделать оплату эээ на ээээ NNN, потом разберемся»)

Понравилась статья? Поделить с друзьями:
  • Программы проверяющие компьютер на ошибки
  • Проджект студио ошибка доступа к базе данных
  • Программы проверки флешки на ошибки и исправить
  • Программы поиска и исправления ошибок виндовс
  • Проджект зомбоид ошибка console txt