@immelnikoff
Изучаю БД

Как из python-скрипта, подключаясь к 1С через COM-соединение, передать 1С-запросу текущую дату?

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

Мой код (рабочий) на Python:
#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)  #Вот тут нужно сравнивать Док.Ссылка.Дата с текущей датой, а не писать каждый раз ручками!
'''
  • Вопрос задан
  • 1193 просмотра
Пригласить эксперта
Ответы на вопрос 1
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')})  #Вот тут нужно сравнивать Док.Ссылка.Дата с текущей датой, а не писать каждый раз ручками!
'''
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы