Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )



История благодарностей участнику andrew76 ::: Спасибо сказали: 56 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
17.03.25, 18:08 Формэкс. Процедура ПослеОткрытия() не срабатывает при модальном открытии
igmig65 @ Сегодня, 21:01 * ,


ну тогда палец,который на форме форума.
igmig65,
17.03.25, 16:34 Формэкс. Процедура ПослеОткрытия() не срабатывает при модальном открытии
igmig65 @ Сегодня, 19:05 * ,

Не спешите ! Все решится гораздо раньше !
Есть в FormEx нужный функционал - почти как в 1с 8-ке !
Прописываете вызовы ваших процедур в процедуру (я ее назвал- "ВашаПроцедура"-назовите её как хотите) и вызываете её методом - ВыполнитьПроцедуру !

Должно работать !

Процедура ПослеОткрытия()
  
    Окно = СоздатьОбъект("Окна");
    Окно.ЦентрироватьОкно(Форма);
    //Окно.СтильОкна(Форма,2);
    Форма.Обновить();
    Сервис = СоздатьОбъект("Сервис");
    Сервис.ВыполнитьПроцедуру(Контекст, "ВашаПроцедура"); // да,да,вот она !

КонецПроцедуры


ВыполнитьПроцедуру(<?>,,)
Синтаксис:
ВыполнитьПроцедуру(<Контекст>,<ИмяПроцедуры>,<СписокАргументов>)
Назначение:
Метод предназначен для выполнения процедуры в заданном контексте.
Возвращает 1 в случае успеха, 0 - в противном случае.
ПРИМЕР:
Перем Конт;
Сервис = СоздатьОбъект("Сервис");
ОткрытьФорму("Обработка.Демо", Конт);
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение("Первый параметр");
Список.ДобавитьЗначение("Второй параметр");
Список.ДобавитьЗначение("Третий параметр");
Сервис.ВыполнитьПроцедуру(Конт, "Выполнить", Список);

Только все эти фишки (фичи) - от FormEx !
igmig65,
17.03.25, 15:56 Формэкс. Процедура ПослеОткрытия() не срабатывает при модальном открытии
Цитата(igmig65 @ 17.03.25, 12:51) *
Кто нибудь подскажет, может как по другому можно сделать, чтобы форма открывалась посередине, отцентрованно


Для вывода окна по центру в форме обработки пропишите следующую процедуру :
(если используете компоненту FormEx)

Процедура ПослеОткрытия()
   Окно = СоздатьОбъект("Окна");
   Окно.ЦентрироватьОкно(Форма);
   Форма.Обновить();
КонецПроцедуры


У меня этот код отработал отлично.Каждый раз при запуске обработки,окно строго по центру экрана.

andrew76 @ Сегодня, 17:48 * ,

Можно там же поэкспериментировать со стилем окна:

Процедура ПослеОткрытия()
   Окно = СоздатьОбъект("Окна");
   Окно.ЦентрироватьОкно(Форма);
   Окно.СтильОкна(Форма,2); //стиль от 0 до 2, 1 и 2 -без заголовка окна,2 - по моему модальный режим
   Форма.Обновить();
КонецПроцедуры


Что-нибудь получилось ? Дальше мне искать ? Чи не трэба ?

Цитата(igmig65 @ 17.03.25, 12:51) *
Кто нибудь подскажет


Так этот вопрос ещё актуален ? Истина уже близко !
igmig65,
17.03.25, 12:11 Формэкс. Процедура ПослеОткрытия() не срабатывает при модальном открытии
Vofka @ Сегодня, 12:59 * ,

Это описание ОбработкиОжидания от FormEx:
РасширениеФормы->ОбработкаОжидания

ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(Имя, Интервал)
Назначение:
Вызывает процедуру модуля формы с заданным интервалом в миллисекундах. В отличии от штатной обработки ожидания, вызывается при открытых модальных формах. Для одной формы может быть установлено сколько угодно обработок ожидания путем создания нужного количества объектов РасширениеФормы. При уничтожении объекта, для которого вызывался данный метод, соответствующая процедура обработки ожидания останавливается. Метод работает только после физического открытия окна формы.
Параметры:
<Имя> - (Строка Имя процедуры модуля текущей формы для периодического вызова (если в качестве параметра передается пустая строка, то ранее запущенный процесс прекращается))
<Интервал> - (Число Интервал вызова процедуры в миллисекундах (если в качестве параметра передается 0 (ноль)) , то ранее запущенный процесс прекращается)
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ:
(Строка) Имя процедуры, которая была установлена ранее в качестве процедуры обработки ожидания.

Есть еще ,тоже от FormEx
Сервис->ОстальныеМетоды


ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(<Имя>,<Интервал>)
Назначение:
Вызывает глобальную процедуру с заданным интервалом в миллисекундах.
ПРИМЕР:
Сервис = СоздатьОбъект("Сервис");
Сервис.ОбработкаОжидания("глПолучитьНовыеЗаявки",100);

Цитата(igmig65 @ 17.03.25, 12:51) *
не могу ее запустить процедуры из ПослеОткрытия(), в модальном режиме не срабатывает, а если вставляю процедуры в ПриОткрытии(), то все срабатывает но форма не открывается, вернее открывается уже после выполнения процедур, соответственно лог не видно.


Есть еще процедура ПослеСозданияФормы от FormEx

Процедура ПослеСозданияФормы(<?>)КонецПроцедуры
Синтаксис:
Процедура ПослеСозданияФормы(<Контекст>)КонецПроцедуры
Назначение:
Предопределенная процедура вызывается после физического создания окна формы в системе, когда окно формы создано, но еще не полностью проинициализировано и не отображено на экране.
Параметры:
<Контекст> - контекст открытой формы
ЗАМЕЧАНИЕ:
В этой процедуре (и во всех процедурах, вызываемых после нее) можно вызывать методы, которые помечены как "работает только после физического открытия окна формы".


andrew76 @ Сегодня, 14:07 * ,

Не работает ПослеОткрытия() в модальном режиме:
правда,ветка на том форуме древняя:
https://www.1cpp.ru/forum/YaBB.pl?num=1499687314/0

ещё такое есть:
v7: ОбработкаОжидания в Formex
https://www.mista.ru/topic/719183

Цитата(igmig65 @ 17.03.25, 12:51) *
когда форма уже открыта запустить нужные процедуры.


А может посадить процедуры на кнопку (кнопка на форме).
Сделать кнопку невидимой.Потом сэмулировать нажатие этой кнопки ?
Должно сработать в принципе и без formex.
igmig65,
13.03.25, 11:01 Збереження з 1с 7.7 таблиць mxl в xlsx
Lunatik_51 @ Вчера, 23:22 * ,

Добрый день.
Штатными средствами этого сделать нельзя.Нужно писать свою обработку.

вот здесь посмотрите,может пригодится что-то:
https://pro1c.org.ua/index.php?showtopic=18547

а если самому делать ,то примерно так начинается это дело:

Эксель= СоздатьОбъект("Excel.Application");
Книга = Эксель.Workbooks.Add();
Книга.Worksheets(1).Cells(2,1).Value = Строка("Товар");
Книга.Worksheets(1).Cells(2,2).Value = Число("Количество");
Книга.SaveAs("с:\проба.xlsх");
Книга.Close();
Эксель.Quit();


Но конечно прийдётся делать здесь ещё форматирование всех колонок,подбирать шрифт и т.д.
Lunatik_51,
02.03.25, 7:55 Изменение реквизитов при создании документа
Цитата(kayfatuch @ 01.03.25, 22:23) *
но когда создаёшь через обработку по умолчанию ставится упр хотя у меня общ. кто-то сталкивался с таким? как можно явно сказать что бы создавался с нужным мне типом учёта? или это надо в глобальный лезть?


Посмотрите Процедуру ПриЗаписи() этого документа (накладная в вашем случае).
Скорее всего там будет что-то вроде:
Типучёта=бух;



kayfatuch,
19.11.24, 16:23 Как можно сделать текстовые кнопки как в 8 на форме?
Цитата(tibank @ 19.11.24, 13:52) *
Гуглите ActiveX кнопки

Можно менять и стили через FormEx.Правда,не в таком виде будет , как просил товарищ -4andriy,который эту тему открыл.
Вот здесь про это,кому интересно (правда ветка 12-летней давности,но внешняя обработка там рабочая):
https://www.1cpp.ru/forum/YaBB.pl?num=1345736013/4#4
Обработка,с экспериментами со стилями элементов управления окна:
https://www.1cpp.ru/forum/YaBB.pl?action=do...5FExample%2Eert
Для работы обработки требуется наличие библиотеки FormEx на компе.

https://forum.infostart.ru/forum9/topic33073/
https://infostart.ru/1c/tools/77297/

вот пример с 1cpp (не мой конечно)
http://www.1cpp.ru/forumfiles/Attachments/Test_Buttun.rar

А вообще,это я считаю не нужно в 1С 7.7.
Есть жалобы на работоспособность 1С после таких опытов.
4andriy, tibank,
18.11.24, 13:22 Чтение файла txt для вставки данных
Цитата(volodya1122 @ 18.11.24, 0:45) *
обработка будет работать в цикле на отдельном пользователе

Только нужно не забыть этому пользователю дать разрешение на запись и удаление или перемещение файлов
на сервере ,где эти файлы будут обрабатываться.
kayfatuch,
15.11.24, 17:06 Чтение файла txt для вставки данных
Цитата(kayfatuch @ 15.11.24, 18:33) *
первый если контрагент прописан в подкаталоге он не находится для вставки


Синтаксис Поиска в справочниках по наименованию:

НайтиПоНаименованию(<?>,,);
Синтаксис:
НайтиПоНаименованию(<Наименование>,<Режим>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по наименованию.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<Наименование> - строка с наименованием искомого элемента справочника,
<Режим> - необязательный параметр. Число: 1 - поиск внутри установленного подчинения (родителя); 0 - поиск во всем справочнике вне зависимости от родителя. Значение по умолчанию - 1.
<ФлагПоиска> - необязательный параметр. Число: 1 - найти точное соответствие наименования; 0 - найти наименование по первым символам. Значение по умолчанию - 0.
kayfatuch,
14.11.24, 5:44 Как можно сделать текстовые кнопки как в 8 на форме?
Profi_1C77 @ 12.11.24, 12:29 * ,

Посмотрел описание библиотеки FormEx версия: 2.0.5.198 от 30.09.2024.Про стиль кнопки там ничего нет.
Есть формы,панели,таблицы и всякая интересная штука.
Profi_1C77,
26.10.24, 4:12 ПовторятьПриПечатиСтроки - не меняется параметр
Prana @ Сегодня, 0:08 * ,

Ну вот и хорошо.а на форуме (для спасибо) есть кнопка "c пальцем". smile.gif
Prana,
06.10.24, 7:42 УТ для України 2.3. (8.3.11.) Режим Файловый Не вносяться зміни
dravva @ Вчера, 17:20 * ,

Доброе утро.
Может все таки не сохранилась конфигурация при обновлении (причины-блокировка базы,ошибки логики или синтаксические ошибки присутствовали) ? Посмотрите журнал регистрации работы пользователя.
dravva,
09.02.24, 5:25 1Cv7.MD Неисправимая ошибка. Неправильный формат файла
Цитата(Pepe @ 09.02.24, 1:47) *
а вот индексов у него нет

Вопрос-почему нет индексов ? Список счетов визуально не поврежден.По идее индексы пересоздаются при монопольном запуске.
Dmitrij19631025,
08.02.24, 6:46 1Cv7.MD Неисправимая ошибка. Неправильный формат файла
Dmitrij19631025 @ 06.02.24, 19:21 * ,

Скачал этот мд-файл.Правда,скажу сразу - делал на платформе 7.7.025.В конфигураторе-загрузил измененную конфигурацию и сохранил.
Выгрузил после этого md-файл в архив.По моему проблема не в MD-файле.


andrew76 @ Сегодня, 9:20 * ,
архив здесь:
https://transfiles.ru/yr200
Dmitrij19631025,
05.02.24, 13:30 Как программно назначить обработчик события 1с на поле вввода данных Табличного Документа
Цитата(AnryMc @ 05.02.24, 16:00) *
andrew76 @ Сегодня, 13:07 * ,


А событие "Выбор" не подходит?
Процедура МояТЧ_Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    ТекДанные = Элементы.МояТЧ_.ТекущиеДанные;
    
    ПозицияНужнойСтроки = ТекДанные.ПолучитьИдентификатор();
    
    //ОТКРЫТЬ ЗАПРОС
    Если Поле.Имя = "ИмяНужнойЯчейки" Тогда


Так у меня ТабличныйДокумент на форме а не ТабличноеПоле.В ТабличномДокументе вроде нет такого свойства- ТекущиеДанные.

andrew76 @ Сегодня, 16:04 * ,

Вышел из положения следующим образом:через События->ПриИзменении в ТабличномПоле.


Процедура Поле1ПриИзменении(Элемент)
    
Если Элемент.ТекущаяОбласть.Имя="R3C3" тогда
    
        //Действие с нужной мне ячейкой
    
КонецЕсли;
AnryMc,
29.12.21, 8:53 Файловые атрибуты-присвоить дату
andrew76 @ Вчера, 20:22 * ,

вот рабочий вариант.
тему можно закрывать.

Шел=СоздатьОбъект("Shell.Application");
Папка=Шел.NameSpace("c:\out\photo_\");
fil="";
fil=ID_+".jpeg";
Файл=Папка.ParseName(fil);
Д_Ф=Формат(ТекущаяДата(),"ДДДММГГГГ");
ДД_ф=Сред(Д_ф,4,2)+"/"+Лев(Д_ф,2)+"/"+Прав(Д_ф,4);
Файл.ModifyDate=(ДД_ф+" 01:00:00 AM");
Vofka,
03.02.21, 17:05 Запуск 1с 8.1 на OS Windows 10 64 bit
Vofka @ Сегодня, 14:22 * ,

Сервер перестал раздавать лицензии.А лекарство я нашёл.
Прямо как в известном фильме-"Достаточно одной таблэтки" ©.
Лекарство сделано под 64-х разрядную Windows 7,но работает и под Windows 10 X64.
awp,
22.09.20, 18:40 Как создать ссылку на определенную строку ТаблицыЗначений? 1с 7.7 конф 7.7.003
Цитата(ZUBR @ 22.09.20, 20:12) *
Суть в том, что в определенном месте цикла мне надо запомнить строку ТЗ, чтобы потом ее вызвать без поиска и цикла и произвести в ней некоторые изменения.


ПолучитьСтрокуПоНомеру(<?>);
Синтаксис:
ПолучитьСтрокуПоНомеру(<НомерСтроки>)
Назначение:
Получить строку таблицы значений по номеру. Указанная строка становится текущей.
Параметры:
<НомерСтроки> - номер строки, на которую следует переместиться.

ТЗ.ПолучитьСтрокуПоНомеру(<?>);



Вдогонку :

ТЗ.ВыбратьСтроки();  //эта строчка лишняя скорее всего

ТЗ.ПолучитьСтрокуПоНомеру(А);                   //ПЫТАЕМСЯ ПОЛУЧИТЬ СТРОКУ А

Если (ТЗ.ЗАКАЗ=Расх.НомерЗаказа)и(ТЗ.СТАТУС=Перечисление.Статусы.АКС)  Тогда  
       ТЗ.К=К;
КонецЕсли;

ZUBR,
15.09.20, 8:34 Ограничение доступа с пользователей к складам
Цитата(MATEVI @ 14.09.20, 21:53) *
Пишут, то много чего.

Цитата(RedCat77 @ 11.09.20, 13:42) *
Суть вопроса: необходимо ограничить пользователя в возможности работы только по ему разрешенным складам (кому-то один, кому-то несколько, кому-то все доступны)


Судя по названию темы ("Ограничение доступа с пользователей к складам"),Автора
интересовал только ограниченный доступ к складам.А если на всю конфу,то надо использовать RLS,
Или ролями манипулировать.
RedCat77,
26.06.20, 18:53 Выбор минимальной даты в ТаблицеЗначений 1С 7.70.003 торговля склад для Украины?
Цитата(ZUBR @ 25.06.20, 16:14) *
Отсортировать ТЗ по возрастанию и получить значение из первой строки.


Цикл строить не надо.

ТЗ.Сортировать("+ДатаПриема");
Сообщить(ТЗ.ПолучитьЗначение(1,"ДатаПриема")); //минимальное значение
ZUBR,
26.01.20, 5:14 Как открыть форму элемента справочника Контрагенты из формы расходной накладной в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Вчера, 21:45 * ,

А команда Сообщить() выдает пустую строку ?

Если нижеуказанный код повесить на кнопку ,которая будет расположена на форме
Расходной Накладной,то все должно работать ( у меня по крайней мере работает).
Если вешать этот код на обработчик флажка,то ошибка будет вылетать.
Поэтому могу предложить другой вариант открытия формы.

Процедура Проблема()                                   
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.НайтиПоНаименованию(Контрагент.Наименование,0,1); //
    Сообщить(Спр.ТекущийЭлемент());
    ОткрытьФорму(Спр.ТекущийЭлемент());
КонецПроцедуры


Отрыть форму модально: // в этом варианте все должно работать

Процедура Проблема()                                   
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.НайтиПоНаименованию(Контрагент.Наименование,0,1); //
    Сообщить(Спр.ТекущийЭлемент());
    ОткрытьФормуМодально(Спр.ТекущийЭлемент());
КонецПроцедуры
ZUBR,
20.01.20, 15:55 Ошибка печати справки о доходах
WillyM @ Сегодня, 18:44 * ,


Проверяйте заполняемость полей Фамилия,Имя,Отчество
Не вижу весь код запроса ,поэтому предлагаю такой "псевдокод" :

Если ЗначениеЗаполнено(Фамилия) и ЗначениеЗаполнено(Имя) и  ЗначениеЗаполнено(Отчество) Тогда 
       ОбластьМакетаШапка.Параметры.Физлицо = РезультатФИО.Фамилия +" "+РезультатФИО.Имя+" "+РезультатФИО.Отчество;
Иначе
       ОбластьМакетаШапка.Параметры.Физлицо="Неполные данные в ФИО";
КонецЕсли;
WillyM,
20.01.20, 15:32 Ошибка печати справки о доходах
WillyM @ Сегодня, 18:06 * ,

Маловато данных для анализа ошибки.Огласите текст запроса пожалуйста.
WillyM,
26.12.19, 15:25 Как осуществить поиск телефона по нескольким цифрам в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Сегодня, 17:48 * ,

Найти(<?>,)
Синтаксис:
Найти(<Строка1>,<Строка2>)
Назначение:
Возвращает позицию первого вхождения в строку поиска заданной подстроки.
Параметры:
<Строка1> - строка в которой ищем (место поиска);
<Строка2> - строка которую ищем (шаблон поиска).
Замечание:
Если не находит - возвращает число 0.
Первая позиция имеет индекс 1.

Телефон_=СокрЛП(Телефон);  //убирает лишние пробелы справа и слева
Расх.ВыбратьДокументы(НачДата,КонДата);
            Пока Расх.ПолучитьДокумент()=1 Цикл
                Если (Найти(Расх.Телефон,Телефон_)>0)и(Расх.СтатусЗаказа <> Перечисление.Статусы.Акс)  Тогда  
                    ТЗ.НоваяСтрока();
                    ТЗ.Модель = Расх.Модель;
ZUBR,
24.12.19, 16:30 Как осуществить поиск телефона по нескольким цифрам в 1С 7.70.003 торговля склад для Украины?
mut @ Сегодня, 18:52 * ,

Ладненько,уговорили: 32000000.gif

Телефон_=СокрЛП(Телефон);  //убирает лишние пробелы справа и слева
Расх.ВыбратьДокументы(НачДата,КонДата);
            Пока Расх.ПолучитьДокумент()=1 Цикл
                Если (Найти(Расх.Телефон,Телефон_)=1)и(Расх.СтатусЗаказа <> Перечисление.Статусы.Акс)  Тогда  
                    ТЗ.НоваяСтрока();
                    ТЗ.Модель = Расх.Модель;

ZUBR,

3 страниц V   1 2 3 >
RSS Текстовая версия Сейчас: 14.06.25, 17:41
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!