15 мая 2017 г.

Получение данных из нескольких источников недопустимо

Есть ограничения в платформе 1С:Підприємство 8.3 (8.3.10.2168), ну и ниже версий.

Нельзя использовать одновременно соединение таблиц базы данных (например таблицы регистра) и данные из ВнешнеИсточникиДанных в запросах.

Обойти это ограничение возможно сначала обратиться к ВнешниеИсточникиДанных с помощью запроса, а результат запроса выгрузить в таблицу значений.

Далее сделать еще один запрос и в качестве источника данных выбрать ранее выгруженную таблицу значений.
А далее в этом запросе готовую таблицу значений соединяем с нашими данными из базы 1С (например, регистром сведений).

У меня данный пример реализован в функции ПолучитьТЗ()

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
 
 //так как нельзя использовать в одном запросе обращение к таблицам внешних 
 //источников данных и таблицам информационной базы 1С делаем такой ход
 ТаблицаЗначенийРезультат = ПолучитьТЗ();
 //получим ТЗ и ее запихнем в отчет
 
 Если ТаблицаЗначенийРезультат.Количество() = 0 Тогда 
  Возврат;
 КонецЕсли;
 
 СтандартнаяОбработка = Ложь; 
 СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
 
 Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
 
 ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; 
 КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
 
 МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
 
 //поместим ТЗ в отчет
 ВнешнийНаборДанных = Новый Структура("fdu92doc", ТаблицаЗначенийРезультат);
 
 ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
 ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
 
 ДокументРезультат.Очистить();
 
 ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
 ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
 ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
 
КонецПроцедуры

Функция ПолучитьТЗ()
  
 Запрос = Новый Запрос;
 Запрос.Текст = 
 "ВЫБРАТЬ
 | AdjacentDoc.OID
 |ИЗ
 | ВнешнийИсточникДанных.fdu92doc.Таблица.AdjacentDoc КАК AdjacentDoc";
 
 fdu92doc = Запрос.Выполнить().Выгрузить();
   
 Запрос = Новый Запрос;
 Запрос.Текст = 
 "ВЫБРАТЬ
 | fdu92doc.OID
 |ПОМЕСТИТЬ ВременаяТаблица
 |ИЗ
 | &fdu92doc КАК fdu92doc
 |;
 |
 |//////////////////////////////////////////////
 |ВЫБРАТЬ 
 |  fdu92doc.OID
 |ИЗ 
 | РегистрСведений.fdu92doc КАК fdu92doc 
 |  СОЕДИНЕНИЕ ВременаяТаблица КАК ВременаяТаблица
 |ПО fdu92doc.OID = ВременаяТаблица.OID";
 
 Запрос.УстановитьПараметр("fdu92doc", fdu92doc); 
 
 Возврат Запрос.Выполнить().Выгрузить();
 
КонецФункции

22 апр. 2017 г.

Изменить стандартный сигнал 1С

Для сигнализирования события в 1С есть метод глобального контекста
Сигнал();
Но, что если нужно изменить мелодию звукового сигнала?! Для этого можно использовать внешние компоненты, например MSScriptControl.ScriptControl, а можно в изменить мелодию в звуковых настройках операционной системы



и после этого 1С будет воспроизводить тот звуковой сигнал, который будет установлен.

Компьютер не переходит в ждущий режим \ сон

Пуск - Выполнить - cmd 
powercfg.exe -requests
вывод команды был таким 
EXECUTION:
[PROCESS] \Device\HarddiskVolume6\Program Files (x86)\Google\Chrome\Application\chrome.exe Uploading data
теперь в командной строки выполняю по очереди
powercfg -requestsoverride PROCESS chrome.exe awaymode display system
powercfg -requestsoverride PROCESS chrome.exe awaymode display system execution
powercfg -requestsoverride PROCESS LockScreenContentServer.exe

21 апр. 2017 г.

Применить группировку \ сортировку для всех папок в проводнике

Что бы применить понравившеюся группировку или сортировку в проводнике для всех остальных папок нужно открыть любую папку в проводнике, настроить нужную группировку или сортировку

далее зайти в параметры проводника не закрывая папку, где настроена группировка или сортировка 

и нажать кнопку Применить к папкам + ок


Получить предпоследнюю цену номенклатуры

      Ничего лучшего чем
ВЫБРАТЬ ПЕРВЫЕ 2
 ЦеныНоменклатуры.Период КАК Период,
 ЦеныНоменклатуры.Цена
ПОМЕСТИТЬ ПоследняяПредпоследняя
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ
 ЦеныНоменклатуры.Номенклатура = &Номенклатура
 И ЦеныНоменклатуры.ТипЦен = &ТипЦен
 И ЦеныНоменклатуры.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры

УПОРЯДОЧИТЬ ПО
 Период УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
 ПоследняяПредпоследняя.Период КАК Период,
 ПоследняяПредпоследняя.Цена
ИЗ
 ПоследняяПредпоследняя КАК ПоследняяПредпоследняя

УПОРЯДОЧИТЬ ПО
 Период
не придумал, что бы получить предпоследнюю цену номенклатуры по определенному 
типу цен с определенной характеристикой
 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07