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

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

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


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

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

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

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

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

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

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

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

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

Напрашивается вывод, что КодОперации = глКО.Прочее. Нет?
24 Злопчинский
 
27.03.18
13:20
при программном создании документа ФОРМИРУЙТЕ ДОКУМЕНТ ПРАВИЛЬНО. заполняйте НУЖНЫЕ РЕКВИЗИТЫ - ПРАВИЛЬНЫМИ ЗНАЧЕНИЯМИ. Тогда программное проведение ничем не будет отличаться от интерактивного проведения пользователем.
если не знаете какие реквизиты заполнять какими значениями - то "купите" услуги у специалиста. Я вот как 1сник - в НЕт не лезу, ибо не разбираюсь. Но при этом Net-чик почему-то считает что залезть в 1с - как два пальца обоссать(зачеркнуто) об асфальт. Смишно.
Сорри если не прав.
банковскую выписку в Типовой ТиС заполнить программно и провести - чуть ли не одна из простейших задач начального уровня.
25 Злопчинский
 
27.03.18
13:22
а так - все сказали - все причины в неадекватном заполнении реквизитов.
а если ругается что "Движения регистров не могут выполняться у данного объекта." - у обекта метаданных не стоит галка "Оперативный учет" или что-то делается вообще криво
26 demorest36ru
 
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 - ждем-с...
28 big
 
29.03.18
08:00
(26)  ))))  Можно устроить батл - кто быстрее автоматизирует учёт - крутой кодер в VS или крутой одноэсник в 7.7 (!!!), не говоря уже про 8!

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