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

Хранилище

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

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



История благодарностей участнику andrew76 ::: Спасибо сказали: 38 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
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,
24.12.19, 12:30 Как осуществить поиск телефона по нескольким цифрам в 1С 7.70.003 торговля склад для Украины?
Цитата(mut @ 22.12.19, 15:47) *
Если (Найти(Расх.Телефон,СокрЛП(Телефон))>0)


Лучше избавиться от пробелов до начала работы цикла и выполнения условия.
А то получится выражение каждый раз при прогоне цикла будет вычисляться снова-
если в базе 1000 контрагентов,то 1000 раз будут убираться пробелы из переменной Телефон.
ZUBR,
21.12.19, 16:48 Как осуществить поиск телефона по нескольким цифрам в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Сегодня, 14:09 * ,

Попробуйте использовать функцию удаления лишних пробелов СокрЛП().
Только если в базе много контрагентов, обрабатывать будет не очень быстро.

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

Используйте в цикле перебора элементов функцию Прав().

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

Пока Контрагенты.ПолучитьЭлемент()=1 Цикл

Если Прав(СокрЛП(Контрагенты),4)=НужнаяЧастьНомера тогда  
       Сообщить(Контрагенты.Наименование);
КонецЕсли;

КонецЦикла;
ZUBR,
17.12.19, 2:35 добавить фильтр в многострочную часть
Странно как-то фильтр работает.А если ИНН временно в числовой формат перевести (ради эксперимента)?
4andriy,
16.12.19, 16:24 добавить фильтр в многострочную часть
4andriy @ Сегодня, 18:00 * ,

Вообще-то этот код лучше записать в процедуру ПриОткрытии() формы,
где расположена табличная часть справочника.
Реквизит ИНН какого типа ? Числовой или строковый ?
Количество элементов в списке проверяли? Может список значений пуст ?
Сколько уровней в справочнике ?

Примерно такой код:

Процедура Показать()
СписокЭлементов = создатьОбъект("СписокЗначений");
Контрагенты=СоздатьОбъект("Справочники.Контрагенты");
Контрагенты.ВыбратьЭлементы();

Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
   Если Контрагенты.ИНН=0 Тогда
          СписокЭлементов.ДобавитьЗначение(Контрагенты.ТекущийЭлемент());
   КонецЕсли;
КонецЦикла;

ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры



У меня вышеуказанный код отработал правильно.Справочник в моем случае был одноуровневый.
4andriy,
14.12.19, 6:27 добавить фильтр в многострочную часть
4andriy @ Вчера, 21:41 * ,

ИспользоватьСписокЭлементов(<СписокЗначений>)
Назначение:
Реализует фильтрацию элементов справочника, используя нединамический фильтр.
Параметры:
<СписокЗначений> - необязательный параметр. Значение типа - ''СписокЗначений'' - должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.
Замечание:
Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику.
4andriy,
08.12.19, 19:13 Как создать новый элемент справочника из документа? 1с 7.7 конф 7.7.003
ZUBR @ Сегодня, 20:32 * ,

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

Мистер.Новый();                        
Мистер.Родитель=Род;  //при записи в справочник нового контрагента указываем ссылку на Группу "Покупатели"
                                  //Свойство элемента справочника Родитель это и есть Группа - в нашем случае "Покупатели"
ZUBR,
05.12.19, 6:01 Как создать новый элемент справочника из документа? 1с 7.7 конф 7.7.003
Мистер = СоздатьОбъект("Справочник.Контрагенты");       
Мистер.НайтиПоНаименованию("Покупатели");
Род=Мистер.ТекущийЭлемент();   //получаем ссылку на запись Группы

Мистер.Новый();                        
Мистер.Родитель=Род;  //при записи в справочник сопоставляем со ссылкой на Группу


Не понял , что за условие выполняется для переменной Кл ?
ZUBR,
05.12.19, 3:25 Как создать новый элемент справочника из документа? 1с 7.7 конф 7.7.003
ZUBR @ Сегодня, 3:53 * ,

Доброе утро !

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

Мистер.Новый();                        
Мистер.Родитель=Род;  
Мистер.Наименование=Клиент;
Мистер.ПолнНаименование=Клиент;                  //ф.и.о из документа накладная
Мистер.Телефоны=Телефон;              //№ телефона из документа накладная
Мистер.ПочтовыйАдрес=Адрес;
Мистер.ВидКонтрагента = Перечисление.ВидыКонтрагентов.ЧастноеЛицо;
Мистер.ВалютаВзаиморасчетов = Константа.БазоваяВалюта;
Мистер.ВалютаКредита = Константа.БазоваяВалюта;
Мистер.ВалютаКредитаПоставщика = Константа.БазоваяВалюта;

Если ПустаяСтрока(Телефон)=0 Тогда
       Мистер.Записать();                   //записываем новую запись в справочник Контрагенты.  
КонецЕсли;
  
КонецЕсли;
ZUBR,
27.11.19, 12:06 Синтаксическая ошибка в запросе -Объединить. (1с 8.2.19.106)
Vladal @ Сегодня, 14:55 * ,

В принципе сделать 2 запроса отдельно.Выгружать результаты из запросов в 1 ТЗ.ТЗ отсортировать по дате- по убыванию.Прочитать из ТЗ первую запись и все.
Vladal,
21.11.19, 10:07 Как сделать, чтобы таблица отчета открывалась с конца? 1С 7.70.003 торговля склад для Украины?
Можно попытаться сэмулировать нажатие клавиш CTRL+End

WshShell = СоздатьОбъект("WScript.Shell");
WshShell.SendKeys("^+END");


andrew76 @ Сегодня, 12:36 * ,

WshShell.SendKeys("^{END}");



ZUBR,
21.11.19, 3:26 Как сделать, чтобы таблица отчета открывалась с конца? 1С 7.70.003 торговля склад для Украины?
ZUBR @ Вчера, 22:00 * ,

Доброе утро !
Попробуйте метод СдвинутьСтроку.Если не получится,что-то надо выдумывать с эмуляцией нажатия клавиш прокрутки.

СдвинутьСтроку(<?>,);
Синтаксис:
СдвинутьСтроку(<КоличСтрок>,<НомерСтроки>)
Назначение:
Переместить строку таблицы значений на новую позицию.
Параметры:
<КоличСтрок> - число строк, на которое надо переместить строку. Если число положительное, то строка сдвигается вниз, если отрицательное, то вверх.
<НомерСтроки> - необязательный параметр. Номер строки, которую надо переместить. Если не задан, то текущая.
ZUBR,
13.11.19, 3:04 Как при нажатии кнопки в расходной накладной программно нажать такую же кнопку в другой расходной накладной? в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Сегодня, 0:59 * ,

Доброе утро !

Расх =    СоздатьОбъект ("Документ.РасходнаяНакладная");
     Расх.ВыбратьДокументы(НачДата1,КонДата1);
Если     УсловиеПоиска    Тогда

// попробуйте сюда вставить весь код процедуры Выдать

КонецЕсли;
ZUBR,
12.11.19, 9:21 Как при нажатии кнопки в расходной накладной программно нажать такую же кнопку в другой расходной накладной? в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Сегодня, 3:13 * ,

Доброе утро !
Посмотрите в конфигураторе,какия процедуры-обраблотчики висят на кнопках.В нужной копке допишите вызов-обрабочик нужной Вам второй процедуры.
Не видя конфигурации я могу писать только такие советы.
ZUBR,
03.11.19, 16:21 Как создать новый элемент справочника из документа? 1с 7.7 конф 7.7.003
andrew76 @ Сегодня, 16:45 * ,

Вдогонку : На вкладке Формула указывайте имя процедуры со скобками.Например: ПроверкаКонтрагентов()
ZUBR,
03.11.19, 13:45 Как создать новый элемент справочника из документа? 1с 7.7 конф 7.7.003
ZUBR @ Сегодня, 15:52 * ,


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


Клиент=СоздатьОбъект("Спрвочник.Контрагенты");
Поиск=Клиент.НайтиПоПоРеквизиту(Телефон,НомерТелефонаИЗАктаПриема,1);

Если Поиск=0 Тогда
       //Добавляется запись в справочник Контрагенты
КонецЕсли;


Цитата(ZUBR @ 03.11.19, 15:52) *
Попутный вопрос - а можно ли сделать так, чтобы по окончании ввода, скажем, телефона, автоматически включался поиск и при нахождении клиента в справочнике автоматически подставлял в поля документа его данные, а при ненахождении создавалась бы новая запись в справочнике?


Можно.На свойствах поля ввода номера телефона (на форме) найдите вкладку Дополнительно.В поле "Формула" пропишите имя процедуры (имя придумайте сами).и в модуле пропишите заготовку процедуры с таким же именем.Подставте в текст процедуры вышеуказанные примеры поиска.
ZUBR,
03.11.19, 4:47 Как создать новый элемент справочника из документа? 1с 7.7 конф 7.7.003
ZUBR @ Сегодня, 5:12 * ,
Цитата(ZUBR @ 03.11.19, 5:12) *
а при проведении документа автоматически создать новый элемент справочника Контрагенты


Доброе утро !
Можно.Код такой примерно :

Клиент=СоздатьОбъект("Спрвочник.Контрагенты");
Клиент.Новый();  //создается новая запись в справочнике контрагентов
Клиент.Наименование=Наименование //ф.и.о из документа накладная
Клиент.Телефон=Телефон //№ телефона из документа накладная
Клиент.Записать();   //записываем новую запись в справочник Контрагенты.


Можно еще продумать проверку на поиск уже существующего клиента в справочнике Контрагентов.
Т.е. новую запись добавлять , только если такого клиента нет в справочнике.

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

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