|
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!
Если не умеешь кататься, не надо делать вывод, что "велосипед" плохой. ))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |