Я хочу быть как солнце, сидя в душной пельменной (ц)
Буду для себя писать всякие неочевидные вещи, связанные с желтой дрянью, чобы потом не рыться по форумам %)
читать дальше1. Подключение к OLE объектам на стороне сервера требует перезапуска агента 1С с разрешенным взаимодействием с рабочим столом.
2. В запросе дату не отформатировать, если не извращаться с вырезанием подстрок.
3. срез дат-календарик. спасибо тому кто придумал
читать дальшеВЫБРАТЬ
| 0 КАК Цифра
|ПОМЕСТИТЬ Единицы
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 1
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 2
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 3
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 4
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 5
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 6
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 7
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 8
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 9
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Единицы.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ Десятки
|ИЗ
| Единицы КАК Единицы
|ГДЕ
| Единицы.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Десятки.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ Сотни
|ИЗ
| Десятки КАК Десятки
|ГДЕ
| Десятки.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Сотни.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ Тысячи
|ИЗ
| Сотни КАК Сотни
|ГДЕ
| Сотни.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Тысячи.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ ДесяткиТысяч
|ИЗ
| Тысячи КАК Тысячи
|ГДЕ
| Тысячи.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДесяткиТысяч.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ СотниТысяч
|ИЗ
| ДесяткиТысяч КАК ДесяткиТысяч
|ГДЕ
| ДесяткиТысяч.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, СотниТысяч.Цифра + ДесяткиТысяч.Цифра + Тысячи.Цифра + Сотни.Цифра + Десятки.Цифра + Единицы.Цифра) КАК ДатаПериода
|ПОМЕСТИТЬ ВТСрезДат
|ИЗ
| СотниТысяч КАК СотниТысяч,
| ДесяткиТысяч КАК ДесяткиТысяч,
| Тысячи КАК Тысячи,
| Сотни КАК Сотни,
| Десятки КАК Десятки,
| Единицы КАК Единицы
|ГДЕ
| СотниТысяч.Цифра + ДесяткиТысяч.Цифра + Тысячи.Цифра + Сотни.Цифра + Десятки.Цифра + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
4. передача списков в запрос не всегда работает корректно, лучше передавать массивом, особенно в СКД
5. Общие реквизиты с разделением данных весьма полезны не только для разделения, их можно использовать вместо параметров командной строки. При указании справочников в параметры строки коннекта ставится код
типа zn=-[код справочника]
6.ИД процесса (7.7)
Функция GetProcessID() Экспорт
стр="
|Function PPID()
|Set WshShell = CreateObject(""WScript.Shell"")
|set oExec=WshShell.exec(""rundll32.exe kernel32,Sleep"")
|set objWbemObjectSet=GetObject(""winmgmts:Win32_Process.Handle="" & oExec.ProcessID)
|PPID=objWbemObjectSet.ParentProcessId
|objWbemObjectSet.Terminate()
|End Function";
СкриптЗапуск=CreateObject("MSScriptControl.ScriptControl");
СкриптЗапуск.Language="vbsсript";
СкриптЗапуск.AddCode(Стр);
ProcessID=Число(СкриптЗапуск.Run("PPID"));
Возврат ProcessID;
КонецФункции
7.цдо (7.7):
Почта = CreateObject("CDO.Message");
Почта.Configuration.Fields.Item("schemas.microsoft.com/cdo/configuration/sendusi...").Value=2;
Почта.Configuration.fields.item("schemas.microsoft.com/cdo/configuration/smtpser...").Value=константа.глпочта.серверисходпочты;
Почта.Configuration.Fields.Update();
Почта.To = Получатель;
Почта.From = СокрЛП(ящик);
Почта.TextBody = Тело;
Почта.textBodypart.charset = "windows-1251";
Почта.Subject =Заголовок;
читать дальше1. Подключение к OLE объектам на стороне сервера требует перезапуска агента 1С с разрешенным взаимодействием с рабочим столом.
2. В запросе дату не отформатировать, если не извращаться с вырезанием подстрок.
3. срез дат-календарик. спасибо тому кто придумал
читать дальшеВЫБРАТЬ
| 0 КАК Цифра
|ПОМЕСТИТЬ Единицы
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 1
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 2
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 3
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 4
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 5
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 6
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 7
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 8
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 9
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Единицы.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ Десятки
|ИЗ
| Единицы КАК Единицы
|ГДЕ
| Единицы.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Десятки.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ Сотни
|ИЗ
| Десятки КАК Десятки
|ГДЕ
| Десятки.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Сотни.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ Тысячи
|ИЗ
| Сотни КАК Сотни
|ГДЕ
| Сотни.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Тысячи.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ ДесяткиТысяч
|ИЗ
| Тысячи КАК Тысячи
|ГДЕ
| Тысячи.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДесяткиТысяч.Цифра * 10 КАК Цифра
|ПОМЕСТИТЬ СотниТысяч
|ИЗ
| ДесяткиТысяч КАК ДесяткиТысяч
|ГДЕ
| ДесяткиТысяч.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, СотниТысяч.Цифра + ДесяткиТысяч.Цифра + Тысячи.Цифра + Сотни.Цифра + Десятки.Цифра + Единицы.Цифра) КАК ДатаПериода
|ПОМЕСТИТЬ ВТСрезДат
|ИЗ
| СотниТысяч КАК СотниТысяч,
| ДесяткиТысяч КАК ДесяткиТысяч,
| Тысячи КАК Тысячи,
| Сотни КАК Сотни,
| Десятки КАК Десятки,
| Единицы КАК Единицы
|ГДЕ
| СотниТысяч.Цифра + ДесяткиТысяч.Цифра + Тысячи.Цифра + Сотни.Цифра + Десятки.Цифра + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
4. передача списков в запрос не всегда работает корректно, лучше передавать массивом, особенно в СКД
5. Общие реквизиты с разделением данных весьма полезны не только для разделения, их можно использовать вместо параметров командной строки. При указании справочников в параметры строки коннекта ставится код
типа zn=-[код справочника]
6.ИД процесса (7.7)
Функция GetProcessID() Экспорт
стр="
|Function PPID()
|Set WshShell = CreateObject(""WScript.Shell"")
|set oExec=WshShell.exec(""rundll32.exe kernel32,Sleep"")
|set objWbemObjectSet=GetObject(""winmgmts:Win32_Process.Handle="" & oExec.ProcessID)
|PPID=objWbemObjectSet.ParentProcessId
|objWbemObjectSet.Terminate()
|End Function";
СкриптЗапуск=CreateObject("MSScriptControl.ScriptControl");
СкриптЗапуск.Language="vbsсript";
СкриптЗапуск.AddCode(Стр);
ProcessID=Число(СкриптЗапуск.Run("PPID"));
Возврат ProcessID;
КонецФункции
7.цдо (7.7):
Почта = CreateObject("CDO.Message");
Почта.Configuration.Fields.Item("schemas.microsoft.com/cdo/configuration/sendusi...").Value=2;
Почта.Configuration.fields.item("schemas.microsoft.com/cdo/configuration/smtpser...").Value=константа.глпочта.серверисходпочты;
Почта.Configuration.Fields.Update();
Почта.To = Получатель;
Почта.From = СокрЛП(ящик);
Почта.TextBody = Тело;
Почта.textBodypart.charset = "windows-1251";
Почта.Subject =Заголовок;
@темы: 1С