kayfatuch @ Сегодня, 14:23
, Добавьте реквизит в документ "Цена старая", т.к. "цена" периодический реквизит и в ТиС есть такое понятие как "категория цен". То при изменении товара -
спр=СоздатьОбъект("Справочник.Цены"); спр.ИспользоватьВладельца(Товар); Цена = 0; Если спр.НайтиПоРеквизиту("КатегорияЦены",ВыбКатегорияЦен,0)=1 Тогда // пишите например сюда "Учетная" или там какую хотите получать цену ЦенаСтарая=спр.Цена.Получить(ДатаДок); // или например НачМесяца(Датадок) будем получать цену на начало месяца 01/06/2024 и т.д. КонецЕсли;
AnryMc @ Сегодня, 11:20
, вот такой вариант еще нащел:
//Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур. //Не буду растекаться мыслью по дереву и тянуть кота за все известные места, так как надеюсь, все согласятся, что фоновое выполнение это хорошо. Есть простой путь запускать любой код в фоне. Специалисты скорее //всего такой способ используют, но что-то в инете я описания не встретил, решил выложить.
//Перво-наперво создаем общий модуль с именем например "ФоновоеВыполнение" с галкой "Сервер". Добавим туда пару процедур:
Функция ЗапуститьФоновоеВыполнение(ТекстПроцедуры,СтруктураПараметров=Неопределено) Экспорт УникальныйИдентификатор = Новый УникальныйИдентификатор; ПараметрыВыполнения = Новый Массив; ПараметрыВыполнения.Добавить(ТекстПроцедуры); ПараметрыВыполнения.Добавить(СтруктураПараметров);
Процедура ФоноваяПроцедура(ТекстМодуля,ПараметрыВыполнения) Экспорт ПолныйТекстМодуля = ""; Для Каждого ТекПараметр Из ПараметрыВыполнения Цикл ПолныйТекстМодуля = ПолныйТекстМодуля+ТекПараметр.Ключ+"=ПараметрыВыполнения."+ТекПараметр.Ключ+";"+Символы.ПС; КонецЦикла; ПолныйТекстМодуля = ПолныйТекстМодуля + ТекстМодуля; Выполнить(ПолныйТекстМодуля); КонецПроцедуры //И готово!
//Теперь для выполнения когда в любой момент мы можем поместить любую процедуру в текстовую переменную:
ТекстФоновойПроцедуры = " |//Тут передаем текст фоновой процедуры, это может быть вызов каких то процедур или полноценный код |//вызов процедур проще, т.к. тупо легче отлаживать, т.к. код в этой процедуре обычной отладке не поддастся, |//а при вызове процедуры или функции мы ставим там точку останова и включаем в отладке автоматическое |//подключение фоновых заданий. Запускать можно любые методы для выполнения на сервере. | |ОбщийМодульСервер.ВыполнитьНужнуюЗадачу(Парметр1,Парметр2);" И вызывать ее выполнение:
AnryMc @ Сегодня, 9:20
, Я делал когда-то обработку в фоновом режиме "корректировка ответственных в документах РТиУ" Может и не то что Вам надо, но делал так и подключал в 1с 8 в фоновых заданиях запуск обработки по времени(получилось, то что надо заказчику;
//Обработка элементов форматированного документа, входящего в состав параграфа, может оказаться полезной в том случае, //если нужно, например, убрать все оформление в виде курсива или полужирного шрифта.
//Пример:
Полужирный = Новый Шрифт(, , Истина); Курсив = Новый Шрифт(, , , Истина); Обычный = Новый Шрифт; Для каждого Элемент Из Параграф.Элементы Цикл Если ТипЗнч(Элемент) = Тип("ПереводСтрокиФорматированногоДокумента") Тогда Продолжить; КонецЕсли; Если Элемент.Шрифт = Полужирный Или Элемент.Шрифт = Курсив Тогда Элемент.Шрифт = Обычный КонецЕсли; КонецЦикла;
//Данная обработка заполняет справочник Места Хранения из файла ДБФ //****************************** Процедура Выполнить() СпрМеста = СоздатьОбъект("Справочник.МестаХранения");
Попытка ДБФ=СоздатьОбъект("XBase"); Исключение Предупреждение("Не удачная попытка создания файла.","!"); Возврат; КонецПопытки;
ДБФ.ОткрытьФайл(ИмяФайла); Если ДБФ.Открыта()=0 тогда Предупреждение("Не могу открыть базу"); Возврат; КонецЕсли;
Если ДБФ.Открыта()=1 Тогда ДБФ.ДобавитьИндекс("sklad","kod",0,0,""); ДБФ.СоздатьИндексныйФайл("C:\user\1c\dbf\sklad.CDX"); ДБФ.ТекущийИндекс("sklad"); //**устанавливаем указатель на первую запись ДБФ.Первая(); Пока ДБФ.ВКонце() = 0 Цикл
код = Строка(ДБФ.KOD); наим = ДБФ.NAME;
СтрокаПоиска1=Лев(код,2); //=================Создание групп Если СпрМеста.НайтиПоКоду(СтрокаПоиска1, 0)=0 Тогда СпрМеста.НоваяГруппа(); СпрМеста.Код = СтрокаПоиска1; СпрМеста.Наименование = наим; СпрМеста.Записать(); КонецЕсли;
//=================В созданой группе создаем элементы СтрокаПоиска=Лев(код,4); Если спрМеста.НайтиПоКоду(СтрокаПоиска, 0) <> 1 Тогда СпрМеста.Новый(); Босс = СоздатьОбъект("Справочник.МестаХранения"); Босс.НайтиПоКоду(СтрокаПоиска1, 0);
AnryMc @ Сегодня, 14:35
, Доброго дня! В 1с 8 нічого не змінював. А ось в 1с:7.7, яка і досі в нас працює на підприємстві, багато чого доробляли але все під забаганки нашоїх бухгалтерії (нові документи, зміна проводок і таке інше).
Отказ = Истина; Оповещение = Новый ОписаниеОповещения("ПослеОтветаПользователя", ЭтотОбъект); ТекстВопроса = НСтр("ru = 'Для выполнения этой операции необходимо записать документ. Записать?'"); ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Функция глПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0) Экспорт // функция для формирования значения цвета из составляющих (RGB) Возврат Макс(0,Синий)*65536+Макс(0,Зеленый)*256+Макс(0,Красный); КонецФункции
4andriy @ Сегодня, 9:05
, Доброго дня, в журналі документів розфарбована ТЧ за ознакою "КонтрольДокументів", якщо контролюємо контрагента:
//========================================== Функция ПроверитьВид() Если ПустоеЗначение(ТекущийДокумент) = 0 Тогда //Если ТекущийДокумент.ЗапретРедактирования = 1 Тогда // Возврат "BRUSH["+глПолучитьЦвет(204,204,204)+"]"; //серый фон Если ((ТекущийДокумент.Контрагент.КонтрольДокументов = 1) И (ТекущийДокумент.Проверен = 1)) Тогда Возврат "FONT["+глПолучитьЦвет(0,0,0)+"] BRUSH["+глПолучитьЦвет(255,255,255)+"]"; //белый фон ИначеЕсли ((ТекущийДокумент.Контрагент.КонтрольДокументов = 1) И (ТекущийДокумент.Проверен = 0)) Тогда Возврат "FONT["+глПолучитьЦвет(0,0,0)+"] BRUSH["+глПолучитьЦвет(255, 222, 179)+"]"; //красный фон КонецЕсли; КонецЕсли; Возврат ""; КонецФункции
АвтоВремяНачалоДня(); Синтаксис: АвтоВремяНачалоДня() Назначение: Установить режим записи времени на начало дня для новых документов. Замечание: Для новых документов в модуле формы доступно использование методов установки признака автоформирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!