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

Хранилище

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

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



История благодарностей участнику andrew76 ::: Спасибо сказали: 56 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
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,
07.10.19, 6:12 Как создать отчет для текущего пользователя 1с 7.7 конф 7.7.003
andrew76 @ Сегодня, 6:48 * ,

или ,чтобы подстраховаться от лишних пробелов :

ТЗ.Сотрудник=СокрЛП(ПолноеИмяПользователя());
ZUBR,
07.10.19, 3:48 Как создать отчет для текущего пользователя 1с 7.7 конф 7.7.003
ZUBR @ Вчера, 23:40 * ,

Доброе утро !

Есть встроенная функции ИмяПользователя(),ПолноеИмяПользователя().Возвращают имя текущего пользователя.
Т.е. Вам надо написать примерно так :
ТЗ.Сотрудник=ПолноеИмяПользователя();
ZUBR,
04.10.19, 4:52 В печатной форме расходной накладной сумму прописью не пишет на украинском языке1С 7.70.003 торговля склад для Украины
ZUBR @ Сегодня, 0:48 * ,

Доброе утро ! Есть файлы , должны быть по крайней мере,расширение вроде ".SPL".Файлы должны быть в каталоге ,где установлена 1с или в каталоге , где записана конфигурация БД.Вот этот файл (spl) отредактируйте ,замените значения на русском языке на украинский язык.

Вот здесь про это дело:

https://www.about1c.ru/v77/language-referen...lling-structure
ZUBR,
03.10.19, 17:11 Как изменить дату на месяц? 1с 7.7 конф 7.7.00
ZUBR @ Сегодня, 19:53 * ,

Так получше,наверное:
СледующаяДата=КонМесяца(ДобавитьМесяц(Дата,1));
ZUBR,
29.09.19, 16:08 Как изменить реквизит ВыбратьПериод в 1с 7.7 конф 7.7.003
Добрый вечер.У этого документа нет подчиненных документов ? Лучше перед этим скопируйте всю базу в архив,чтобы была копия на всякий случай.
Сначала сделайте документ не проведённым. Для этого, щелкните на нем правой кнопкой мыши и выберите соответствующую команду : "Cделать не проведённым" . Значок документа изменится - он будет без пиктограммы "птичка-галочка" слева. Теперь открывайте документ, меняйте дату на нужную и проводите.
ZUBR,
25.09.19, 4:38 Как настроить печатную форму в 1С 7.70.003 торговля склад для Украины?
Цитата(Макс1С @ 25.09.19, 0:03) *
И еще мне нужна альбомная форма. Это нужно сделать в конфигураторе, или копаться в настройках принтера?


1.Настраивается в Конфигураторе - в диалоговом окне Параметры Страницы.
2.Программно:

Процедура Печать()
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Печать");
    Таб.ПараметрыСтраницы(2);  //альбом
    Таб.ВывестиСекцию("Шапка");
    Таб.Опции(0,0,0,0);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать Акт прийому","");
КонецПроцедуры
takefive, ZUBR,
16.09.19, 12:43 В чем ошибка условия? 1С 7.70.003 торговля склад для Украины?
Цитата(mut @ 16.09.19, 14:07) *
Подсчет делается внутри перебора элементов справочника, нет смысла писать сотрудника в таблицу и потом сравнивать с таблицей.
Нужно сделать выборку накладных по текущему элементу справочника, потом добавить все в строку таблицы.


Этт точно !.Я с Вами совершенно согласен !


ТЗ = СоздатьОбъект("ТаблицаЗначений"); 
ТЗ.НоваяКолонка ("Инженер");
ТЗ.НоваяКолонка ("КолСис");   // количество систем
    
Расх.ВыбратьДокументы(НачДата,КонДата);
          
Пока Расх.ПолучитьДокумент()=1 Цикл
    ТЗ.НоваяСтрока();
    ТЗ.Инженер=Расх.Инженер;
    ТЗ.КолСис=1;
КонецЦикла;

ТЗ.Свернуть("Инженер","КолСис");    //Подсчет итогов по каждому из инженеров
ZUBR,
16.09.19, 10:17 В чем ошибка условия? 1С 7.70.003 торговля склад для Украины?
Попробуйте такой вариант , можно его еще укоротить...
Это так , для наглядности.

Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Инженер = Документ.РасходнаяНакладная.Инженер;
    |ТекущийДокумент = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Группировка ТекущийДокумент;
    |"//}}ЗАПРОС
;

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

ТЗ.Свернуть("Инженер","КолСис");    //Подсчет итогов по каждому из инженеров


Еще раз посмотрел первый пост ветки.Не совсем верный код.
ZUBR,

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