Вход | Регистрация


1С:Предприятие ::

Метки: 

v7: Проведение Документа по регистрам.

Я
   demorest36ru
 
25.03.18 - 01:21
Добрый день, помогите разобраться.
Пишу интеграцию 1с 7.7 тис 9.2 с банком. Документы создаются програмно: строкаВыпБанкаПриход и строкаВыпБанкаРахсод.

Когда документ создан - пишу метод Провести();, но Документ проводится только по регистру Банк. По регистру Поставщики либо Покупатели надо делать самому. Честно, говоря ума не приложу как это сделать. Последние 2 регистра отвечают за взаиморасчеты с поставщиками/покупателями.
 
 
   Klesk
 
1 - 25.03.18 - 03:04
Процедура ОбработкаПроведения(<?>)
КонецПроцедуры
Синтаксис:
ОбработкаПроведения(<Знач>)
Назначение:
Предопределенная процедура обработки проведения документа в любом режиме.
Параметры:
<Знач> - идентификатор переменной, которая получает значение из процедуры Провести.
Замечание:
Данная процедура может располагаться только в модулях документов.
   Lazy Stranger
 
2 - 25.03.18 - 04:34
КодОперации в своих строках выписки не забываешь ставить? да и вообще-то в ТиС и так есть обработка загрузки банковской выписки, поищи в списке обработок "ПредриятиеКлиент"
   HawkEye
 
3 - 25.03.18 - 08:13
(0) что мешает открыть код и посмотреть?
Если КодОперации <> глКО.Прочее Тогда
    ОбработкаПроведенияПоВзаиморасчетам(); 
Иначе
    ОбработкаПроведенияПрочее();
КонецЕсли;       


по названию и так понятно...
   demorest36ru
 
4 - 25.03.18 - 10:05
Как работает мой проект:
Из .net передаются данные из почты на кот приходят приход/расход из банка.
Код на .net вызывает методы глобального модуля, написанные мной, и передает туда данные из почты.

То есть мне в глобальном модуле в моем метод после метода Провести(), например, нужно дописать код,  который вызовет обработку проведения конкретного дока.
   demorest36ru
 
5 - 25.03.18 - 10:10
(2) КодОперации ставлю.
   welwel
 
6 - 25.03.18 - 10:19
Посмотреть можно еще, какие реквизиты заполняют изначально процедуры модуля формы
ВводНового,
ПриОткрытии,
а также ПриЗаписи и некоторые обработчики, вызываемые при заполнении элементов диалога
   welwel
 
7 - 25.03.18 - 10:23
(6) +
Можно отладчиком сравнить перед записью реквизиты своего документа и интерактивно заполненного
   demorest36ru
 
8 - 25.03.18 - 10:25
(6) буду пробовать.
   mishaPH
 
Модератор
9 - 25.03.18 - 10:27
(0) включи в отладчике часики, проведи док и посмотри куда заходит код при проведении. и все будет понятно.
   demorest36ru
 
10 - 25.03.18 - 10:34
(9) спасибо
 
 
   HawkEye
 
11 - 25.03.18 - 15:35
(5) какой?
   demorest36ru
 
12 - 27.03.18 - 02:10
Взял метод из Модуля Документа:
- ОбработкаПроведенияПоВзаиморасчетам();
- ОбработкаПроведенияПоБанку(ВремБанк);

В конце выдал сообщение:

ДвижениеРасходВыполнить(); 
Движения регистров не могут выполняться у данного объекта.

Выходит, если программно создал документы то провести по регистрам не получится?
   big
 
13 - 27.03.18 - 05:18
(0)(4) Надо у вновь созданного и записанного (!) документа вызвать метод Провести(). И всё проведется по тому алгоритму, что прописан в процедуре ОбработкаПроведения(), ничего придумывать не надо.
Документ создается программно средствами 1С или все-таки .net? Как я понял - .net и по OLE. Есть нюансы, но всё довольно работоспособно.

з.ы. кстати, а что за надобность использовать .net? 1С сама может в режиме робота забирать выписки и автоматом грузить в базу.
   demorest36ru
 
14 - 27.03.18 - 09:59
" Надо у вновь созданного и записанного (!) документа вызвать метод Провести(). И всё проведется по тому алгоритму, что прописан в процедуре ОбработкаПроведения(), ничего придумывать не надо. "
Имеено так и делаю:
Записать();
УстановитьВремя(Часы, Минуты, Секунды);
Провести();
в таком порядке.
"Документ создается программно средствами 1С или все-таки .net? Как я понял - .net и по OLE. Есть нюансы, но всё довольно работоспособно."
Документ создается программно средствами 1С.
.net обрабатывает почту и вызывает методы в 1с из глобального модуля(все методы вызываемые из .net расположены в глоб модуле), передавая в нее текстовые значения. Я тоже думал так. Думал после вызова метода Провести() проведение отработает механизм проведения как положено.

"з.ы. кстати, а что за надобность использовать .net? 1С сама может в режиме робота забирать выписки и автоматом грузить в базу."

Если есть такая возможность - расскажите каким образом это реализуется.
   Масянька
 
15 - 27.03.18 - 10:01
(0) У меня ТиС 932 - в выписках банках есть движуха и по взаиморасчетам.
   demorest36ru
 
16 - 27.03.18 - 10:07
(13), Да если в выписке, созданной программно, нажать действия там есть Отчет о движ документа, Отчет о бух проводках. В первом появляется только Остатки на расчетных счетах, а Взаиморасчеты с поставщиками покупателями - нет.
Во втором должны появится проводки, а их тоже нет.
   Builder
 
17 - 27.03.18 - 10:11
"Если есть такая возможность - расскажите каким образом это реализуется."
Запуск 1С под определенным пользователем, например "Робот".
1 вариант
ПриНачалеРаботыСистемы() проверяем имя пользователя, если это Робот - делаем нужные действия и закрываем 1С.
2 вариант
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
В ней с периодичностью запускается обработка закачки.
   Масянька
 
18 - 27.03.18 - 10:13
(16) А если из журнала нажать "Движения документа" и просмотреть весь список? Сколько галочек?
   demorest36ru
 
19 - 27.03.18 - 10:20
(16) Только Банк(. Галочка вз/расчеты с поставщиками по доку стрвыпбанкарасход не стоит(
   demorest36ru
 
20 - 27.03.18 - 10:23
(18) Только Банк(. Галочка вз/расчеты с поставщиками по доку стрвыпбанкарасход не стоит(
   Масянька
 
21 - 27.03.18 - 10:25
(20) Открой стандарт и посмотри. Там есть ОбработкаПроведенияПоВзаиморасчетам.
   Lazy Stranger
 
22 - 27.03.18 - 10:38
если вручную документ перепровести - движения появятся? а если код операции перевыбрать? такое ощущение что в нём дело
   big
 
23 - 27.03.18 - 10:57
(16) Кусочек кода из модуля проведения документа СтрокаВыпискиРасход:

    Если КодОперации <> глКО.Прочее Тогда
        ОбработкаПроведенияПоВзаиморасчетам(); 
        
    Иначе
// тут как раз проведение только (!) по банку

        ОбработкаПроведенияПрочее();
        
    КонецЕсли;       

Напрашивается вывод, что КодОперации = глКО.Прочее. Нет?
   Злопчинский
 
Ведущий
24 - 27.03.18 - 13:20
при программном создании документа ФОРМИРУЙТЕ ДОКУМЕНТ ПРАВИЛЬНО. заполняйте НУЖНЫЕ РЕКВИЗИТЫ - ПРАВИЛЬНЫМИ ЗНАЧЕНИЯМИ. Тогда программное проведение ничем не будет отличаться от интерактивного проведения пользователем.
если не знаете какие реквизиты заполнять какими значениями - то "купите" услуги у специалиста. Я вот как 1сник - в НЕт не лезу, ибо не разбираюсь. Но при этом Net-чик почему-то считает что залезть в 1с - как два пальца обоссать(зачеркнуто) об асфальт. Смишно.
Сорри если не прав.
банковскую выписку в Типовой ТиС заполнить программно и провести - чуть ли не одна из простейших задач начального уровня.
   Злопчинский
 
Ведущий
25 - 27.03.18 - 13:22
а так - все сказали - все причины в неадекватном заполнении реквизитов.
а если ругается что "Движения регистров не могут выполняться у данного объекта." - у обекта метаданных не стоит галка "Оперативный учет" или что-то делается вообще криво
   demorest36ru
 
26 - 28.03.18 - 10:50
(24), (25) я все доки правильно сформировал. конфа не кривая. А вот по поводу нужных реквизитов - мне вчера подсказали (до прочтения твоего сообщения) - реквизит "СуммаВзаиморасчетов" отвечает за проведение по регистрам. Заполнил и проблема была решена. Удивительно что на этом форуме вы первый обратили мое внимание на заполнение нужных реквизитов. Не ужели интеграция с другими системами типа .net,java не популярны. Я думал это популярная таска(задача)?!
П.С. 1С не считаю простым, 1,5 недели потратил. Выбесил. Неудобный. Дебажить - сто манипуляций нажать. Код раздувается из-за отсутствия возможности создавать объекты и возвращать их. Контекст доступен только из модуля документа. Про 1С 8 вообще молчу. Никогда не полезу в этот изобретенный заново велосипед с костылями, который сами 1сники разработчики еле-еле поддерживают и выпускают одну заплатку за другой. Мне после Visual studio и Intellij Idea кажется средневековой дикостью. Архаичным пережитком прошлого. Другое дело что 80% бизнеса до сих пор держится на таких вот с позволения сказать конф-циях типа ТИС. И НИКТО НЕ ХОЧЕТ ПЕРЕХОДИТЬ НА 1С8!
Надеюсь когда-нибудь наступят времена свободной конкуренции и 1С не будет монополией. Потому что это бред! Уж, простите, за откровение.) Это мое сугубо личное и как многим покажется не объективное мнение, но оно таково!
   Масянька
 
27 - 28.03.18 - 10:54
(26) По поводу "обязательных реквизитов": открывай стандартные док-ты и смотри (если книжки не читаешь). И "лучше перебдеть, чем недобдеть" (С)
Насчет PS - ждем-с...
   big
 
28 - 29.03.18 - 08:00
(26)  ))))  Можно устроить батл - кто быстрее автоматизирует учёт - крутой кодер в VS или крутой одноэсник в 7.7 (!!!), не говоря уже про 8!

Если не умеешь кататься, не надо делать вывод, что "велосипед"  плохой. )))



Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует