I
I
Ivan Melnikov2019-02-25 15:00:27
Python
Ivan Melnikov, 2019-02-25 15:00:27

How to pass the current date to the 1C request from a python script, connecting to 1C via a COM connection?

In 1C itself, this is done like this:

Запрос = Новый Запрос;
Запрос.Текст = »
ВЫБРАТЬ
  ...
ИЗ
  ...
ГДЕ
  СчетНаОплатуПокупателю.Дата = &ТекущаяДата«;
Запрос.УстановитьПараметр(«ТекущаяДата», ТекущаяДата());

My (working) Python code:
#coding=cp1251
import pythoncom
import win32com.client
V83_CONN_STRING = 'File="C:\\Users\\user\\Documents\\InfoBase\\";Usr="Иван Иванов";Pwd="123456";'
pythoncom.CoInitialize()
V83 = win32com.client.Dispatch("V83.COMConnector").Connect(V83_CONN_STRING)
q1 = '''
ВЫБРАТЬ
  Док.Дата КАК TN_DATE,
  Док.Номер КАК TN_NUMBER,
  Док.Подразделение.Наименование КАК TN_UNIT_TITLE,
  Док.Склад.Наименование КАК TN_STORE_TITLE,
  Док.ДокументОснование.Номер КАК ZNP_NUMBER,
  Док.ДокументОснование.Дата КАК ZNP_DATE
ИЗ
  Документ.ТребованиеНакладная КАК Док
ГДЕ
  Док.Ссылка.Дата = ДАТА(2019, 2, 25)  #Вот тут нужно сравнивать Док.Ссылка.Дата с текущей датой, а не писать каждый раз ручками!
'''

Answer the question

In order to leave comments, you need to log in

1 answer(s)
D
Dmitry Shitskov, 2019-02-25
@Zarom

from datetime import date


q1 = f'''
ВЫБРАТЬ
  Док.Дата КАК TN_DATE,
  Док.Номер КАК TN_NUMBER,
  Док.Подразделение.Наименование КАК TN_UNIT_TITLE,
  Док.Склад.Наименование КАК TN_STORE_TITLE,
  Док.ДокументОснование.Номер КАК ZNP_NUMBER,
  Док.ДокументОснование.Дата КАК ZNP_DATE
ИЗ
  Документ.ТребованиеНакладная КАК Док
ГДЕ
  Док.Ссылка.Дата = ДАТА({date.today().strftime('%Y,%m,%d')})  #Вот тут нужно сравнивать Док.Ссылка.Дата с текущей датой, а не писать каждый раз ручками!
'''

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question