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

Хранилище

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

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



История благодарностей участнику volodya1122 ::: Спасибо сказали: 117 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
29.06.21, 9:58 Запись регистра сведений
maci @ Сегодня, 9:24 * ,
Тоисть Вы хотите сделать независимый регистр сведений, но чтобы он вел себя как регистр сведений подчиненный регистратору? Странная хотелка...
Чтобы все записи не регистра сведений не удалялись нужно снасалаОтборами получить нужнвй набор записей, которые будут перезаписыватся, потом удалить их, а в конце записать новый набор.

        НаборЗаписей=РегистрыСведений.МойНезависимыйРегистрСведений.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Ресурс1.Установить(аааа);
        НаборЗаписей.Отбор.Ресурс2.Установить(бббб);
                НаборЗаписей.Отбор.Измерения1.Установить(ввввв);
        НаборЗаписей.Очистить();

        НабпрСвойств=НаборЗаписей.Добавить();

        ЗаполнитьЗначенияСвойств(НабпрСвойств,стр); // Из выборки по табличной части документа, если нужно
        НабпрСвойств.Период=Дата;
            НабпрСвойств.Контрагент=Ссылка;

        НаборЗаписей.Записать();


Ну и не забывать очищать Записи в регистреСведений при распроведении/удалении документа
maci,
28.10.20, 13:54 Как запустить выполнение процедуры в отчете из документа РасходнаяНакладная? в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Вчера, 0:30 * ,

У Вас что-то очень много нестандартных хотелок. Может лучше сделать как в стандартных отчетах реализовано (например Отчет По Партиях товара, или Отчет Продажи). Вверху в сформированном отчете есть кнопки "Оновить" Настроить". Суть тут такая: Сформировали отчет. Потом в каком-то документе поменяли данные, записали документ. Потом просто нажать "Оновить" и отчет перерисуется (с теми же параметрами которые пользователь выбрал для отчета). (сформированный отчет должен быть в Режиме ТолькоПросмотр(1)
ZUBR,
18.09.20, 8:59 как ПрочитатьJSON(Чтение) массив объектов (выборку запроса)
svetas_l @ Сегодня, 9:36 * ,

Может это поможет. Там я какраз делал чтение данных JSON
https://pro1c.org.ua/topic/post-zapros-do-s...atkovojy-61187/
svetas_l,
28.08.20, 17:36 POST запрос до серверу податкової
нарешті добився результату.
1. Дійсно токен потрібно формувати в приватній частині електронного кабінету
https://cabinet.tax.gov.ua/news/A6CA47C3AB0...0530A5028078B00
2. Готовий код (поки корявий, але робочий), може кому пригодиться
    Соединение = Новый HTTPСоединение("cabinet.tax.gov.ua",443,,,,15,Новый ЗащищенноеСоединениеOpenSSL(), Ложь);
    Заголовки = Новый Соответствие;

       ЄДРПОУ="12345678";  // для тесту
       МойТокен="1111111111111111111111111111111";  // потрібно згенерувати в електроннім кабінеті податкової

    Заголовки.Вставить("Content-Type", "application/json");
    Кавычка=Прав("""",2);                        
    КодПриглашения = "{" +Кавычка+
    "tinList"+Кавычка+":" +Кавычка+ ЄДРПОУ+Кавычка+"," +
    Кавычка+"token"+Кавычка+":"+Кавычка +МойТокен+Кавычка+"}";
    
    //    {"kodPdvList":null,"tinList":"34554355 34554357",
    //    "name":null,"token":"03AOLTBLRIFo9xivFXYOrFqaLL6g0HKv"}
    Запрос = Новый HTTPЗапрос("/ws/api/public/registers/pdv_act/list",Заголовки);
    Запрос.УстановитьТелоИзСтроки(КодПриглашения);
    
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
    Данные = ПрочитатьJSON(ЧтениеJSON, Ложь);
    Для Каждого ЕлМассива ИЗ Данные цикл
        Для каждого Структур ИЗ ЕлМассива цикл
            Ключ = Структур.Ключ;
            Знч = Структур.Значение;
            Сообщить("Ключ= "+Ключ+"   Знач "+Знч);
        КонецЦикла;
    КонецЦикла;


Nalogplan,
19.08.20, 8:49 Как использовать один и тот же программный блок с небольшими изменениями несколько раз? 1с 7.7 конф 7.7.00
ZUBR @ Сегодня, 1:49 * ,
Зрозуміліше не стало від цього пояснення. Пропробую здогадатися.
І так і вас на формі обробки (чи де саме використовуєте даний код) є реквізити Имя_, Телефон, АдресаОбласть, АдресаНаселенийПункт, АдресаВулиця.
В залежності від нажатої кнопки потрібно зробити три різних пошуки.
1. по реквізиту форми Имя_
2. по реквізиту форми Телефон
3. одночасно по співпадінню зразу трьох реквізитів АдресаОбласть, АдресаНаселенийПункт, АдресаВулиця
Тоді потрібно ось так прописати

Если НомерВызова=1 тогда
РеквизитДокумента=Расх.Имя;
РеквизитФормы=Имя_;
ИначеЕсли НомерВызова=2 тогда
РеквизитДокумента=Расх.Телефон;
РеквизитФормы=Телефон_;
ИначеЕсли НомерВызова=3 тогда
РеквизитДокумента=Расх.АдресОбл+Расх.НасПункт+Расх.АдресВул;
РеквизитФормы=АдресаОбласть+АдресаНаселенийПункт+АдресаВулиця;
КонецЕсли;

Если ((Найти(РеквизитДокумента,РеквизитФормы)>0)и(Расх.ПометкаУдаления()=0)) Тогда  // замінити замість Вашої умови
// РеквизитДокумента, РеквизитФормы придумані довільні
// відповідно у Вашому докумеенті РасходнаяНакладная повинні бути ці реквізити (або вони називаються по іншому) Телефон, Имя, АдресОбл, НасПункт , АдресВул
// або можливо це реквізити контрагента який є на формі документа. Поді відповідно буде Расх.Контрагент.АдресОбл , ..........
// можливо для рексвізитів в даному коді потрібно буде застосувати СокрЛП

ZUBR,
18.08.20, 9:28 Как использовать один и тот же программный блок с небольшими изменениями несколько раз? 1с 7.7 конф 7.7.00
Цитата(ZUBR @ 16.08.20, 18:28) *
Или, хотя бы, как сделать так, чтобы таблица значений и другие созданные объекты в одной процедуре, были видны в других процедурах?

Це робиться досить просто.
в самому верху модуля (до всіх процедур) робиться обявлення всіх реквізитів які повинні бути доступні у всіх процедурах і функціях даного модуля:
Перем: ТЗ, МояПерем1, МояПерем2;
ZUBR,
17.08.20, 8:59 Как использовать один и тот же программный блок с небольшими изменениями несколько раз? 1с 7.7 конф 7.7.00
Я так зрозумів, що ця процедура визивається різними кнопками. Тому щоби знати якою кнопкою визвана процедура на кожній кнопці визиваємо приблизно так:
ПоискПТФ(1) -на першій кнопці
ПоискПТФ(2) - на другій кнопці
......


В самому модулі навзву процедури пишемо так;
ПоискПТФ(НомерВызова)

І в тексті процедури, перед Вашою умовою пишем
Если НомерВызова=1 тогда
РеквизитСправочника=Расх.Имя;
РеквизитФормы=Имя_;
ИначеЕсли НомерВызова=2 тогда
РеквизитСправочника=Расх.Телефон;
РеквизитФормы=Телефон_;
Иначе..............
..........
КонецЕсли;

Если ((Найти(РеквизитСправочника,РеквизитФорми)>0)и(Расх.ПометкаУдаления()=0)) Тогда  // замінити замість Вашої умови
ZUBR,
11.06.20, 11:13 сравнить много значений
Sharzem @ Сегодня, 9:59 * ,
Спеціально для мене заморочились? Звичайно це набагато краще. (оптимізовувати код можна до бескінечності). але і буковок набагато більше писати потрібно було,
Sharzem,
10.06.20, 14:20 сравнить много значений
Вставлю и свои 5 копеек.
Я так проверяю в табличной части документа на дубли контрагентов. Легко можно переделать на проверку на дубли в таблице значений или списке значений. Тут отработает быстрее чем цикл в цикле
   сз=СоздатьОбъект("СписокЗначений");
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
        зн=Контрагент.Код;
        поз=сз.НайтиЗначение(зн);
        Если поз<>0 Тогда
            СтараСтрічка="";
            тмп=сз.ПолучитьЗначение(поз,СтараСтрічка);
            сообщить("Однаковий Контрагент: "+Контрагент+" в рядках: "+СтараСтрічка+" і "+НомерСтроки,"!");
        КонецЕсли;
        сз.ДобавитьЗначение(зн,""+НомерСтроки);
    КонецЦикла;
4andriy,
08.06.20, 8:03 не получается загрузить табличную часть документа в табличную часть на форме обработки
htggth @ Сегодня, 4:13 * ,
А так переделать концовку?
Результат = Запрос.Выполнить().Выбрать();
Результат.Следующий();
РабочееМестоСТО.Счет.Загрузить(Результат.Счет);
htggth,
29.05.20, 11:53 Управление формой из другой формы
4andriy @ Сегодня, 12:27 * ,

Добре, По тій схемі як Ви написали не спрацює. Потрібно через так зване "Ложное открытие" .
В мене так працює груповий друк документу.
Отже
1. в журналі де йде створення документу написати:
    СЗ=СоздатьОбъект("СписокЗначений");
    СЗ.Установить("ВыполнитьПечать",1); // змінну можете назвати так як забажаєте
ОткрытьФорму(Док,СЗ);


2. В самому документі в ПриОткрітии() в самому цінці процедури;
        _Параметр=Форма.Параметр;
    Если ТипЗначенияСтр(_Параметр)="СписокЗначений" Тогда
        Если _Параметр.Получить("ВыполнитьПечать")=1 Тогда
    //        Печать1(1,1);        
//Записать(); Провести();;  // по вкусу добавити      
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;
4andriy,
29.05.20, 8:00 Управление формой из другой формы
4andriy @ Вчера, 22:11 * ,

А зачем вообще открывать форму документа, если програмно создается документ и програмно записываются все нужные реквизиты в нем?4andriy @ Вчера, 22:11 * ,
anatol1c,
27.05.20, 9:27 Как правильно сравнивать два строковых реквизита? 1с 7.7 конф 7.7.00
Невелике пояснення до відповіді denis84.
Чому використовується СокрЛП. Тому, що для текстового поля, його значення завжди займає всі символи відведені для нього. Якшо вказали наприклад 100 символів, то незалежно від того скільки заповнили, строка для 1С буже виглядати так (наприклад Адреса: "м. Київ, вул Банківська __________________________ " - тобто допониться пробілами до 100 символів)

П.с., не по темі. Бачу ви всі повідомлення пишети вночі, А спите коли, вдень? При такій великій нагрузці можна скоро "вигоріти" на роботі
ZUBR,
26.05.20, 8:04 Как программно выбрать и изменить один документ 1с 7.7 конф 7.7.00
ZUBR @ Вчера, 23:33 * ,
Не ПолучитьДокумент а Расх.НайтиДокумент(СсылкаРасх);
ZUBR,
20.05.20, 8:27 поиск в строке
4andriy @ Вчера, 23:18 * ,

У Вас неправильное использование фунции "Найти"

Функция "Найти" возвращает позицию первого вхождения в строку поиска заданной подстроки.

Если не находит - возвращает число 0.
Если находит то возвращает номер первого найденного символа (это может быть как 1 так и 2 и 7 и 25...., а не всегда 1 как вы написали)
4andriy,
16.05.20, 7:56 Как сделать реквизит видимым только в одном слое расходной накладной? 1с 7.7 конф 7.7.00
Як я зрозумів, потрібно при різних наборах прав керувати видимістю деяких реквізитів на формі.
В доному випадку небачу красивого рішення. Можу запропонувати два варіанти
1. Аналізувати яка закладка відкрита. І якщо відкрита закладка де є Ваш реквізит тільки тоді керувати її видимістю (назва закладки знаходиться в реквізиті Значение).
2. Замість керувати видимістю, керуйте Доступністю реквізитів (реквізит буде видно на формі, але небуде доступний для натискання/вибору). В даному випадку вже непотрібно аналізувати яка закладка відкрита.
ZUBR,
14.05.20, 14:01 Как программно очистить поле на форме РасходнойНакладной? в 1С 7.70.003 торговля склад для Украины?

ZUBR @ Сегодня, 14:00 * ,
Програмно реквизит любого типа банально чистится. Типа: МойРеквизит="";
ZUBR,
13.05.20, 12:02 Файлы хранения конфигурации 1С
Цитата(Maxymoff @ 13.05.20, 12:07) *
Спасибо, про объединение конфигураций почитаю, я так понимаю это что-то вроде обработки, которая сравнит одну конфигурацию с другой и даст возможность добавить отличия одной в другую.Если не затруднит, где почитать? Заранее спасибо!

Это внутренняя обработка (внутри конфигурации). В конфигураторе в меню выбрать Конфигурация- Обеденение конфигураций...
Откроется меню для вибора файло из которого хотите загрузить конфигурацию. Виберете файл 1cv7.md из своей копии где делали изменения. Система промнализирует различия между двумя конфигурациями и покажет различия. Потом просто нажать обеденить (все отметки оставить по умолчанию)
Maxymoff,
11.05.20, 20:39 Как создать ссылку в документе не другой документ 1с 7.7 конф 7.7.003
ZUBR @ Сегодня, 13:35 * ,

1. Чтото сильно намудрили с этими документами..... я до конца так и не понял. Поясню так как понял.
2. В документе акт нужно создать реквизит (СсылкаНаДокументРасхНакл) с типом Документ.РасходнаяНакладная
3. в документе Акт после Расх.Записать(); Написать СсылкаНаДокументРасхНакл=Расх.ТекущийДокумент():- это будет ссылка в Акте на ваш созданный документ расх накуладной.
4. Для ссылки На акт из расходной накладной; Расх.СсылкаНаАктПриема = ТекущийДокумент(); (соответственно реквизит в расходной накладной должен быть типа Документ.АктПрийома).
5. Ссылка на документ Расходная накладная, возможна только после его записи (после строки Расх.Записать()wink.gif. Соответственно и обратное, передавать ссылку на документ Акт в расходную накладную нужно после записи акта (написать Записать(); перед передачей ссылки на акт)
ZUBR,
07.05.20, 11:59 Как сделать дополнительную вкладку в документе? 1с 7.7 конф 7.7.00
Ну так в документе у вас уже все готовое есть просто нужно посмотреть как реализовано.
1. Переключение закладок : Процедура ПриВыбореЗакладки(Номер,Значение)
2. Установка закладок в ПриОткрытии уснанавливается визуальное отображение закладок
Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение("Основной","Основна");
    Форма.Закладки.ДобавитьЗначение("Довереность","Довіреність");
    Форма.ИспользоватьСлой("Основной, Совместный",2);
ZUBR,
06.05.20, 7:46 Ошибка метода НайтиПоРеквизиту 1с 7.7 конф 7.7.00
ZUBR @ Сегодня, 1:10 * ,
и Мистер.ВыбратьЭлементы(); в даном случае не нужно
ZUBR,
05.05.20, 15:37 Печать второй пустой страницы таблицы.
1. На двух компах разные принтера, наверное потому на одном влазит, а на другом нет.
2. В макете печатной формы в подвале есть пустые строки - в них ничего не выводится, но они участвуют в формировании печатной формы.
3. Может быть в макете печатной формы ниже подвала еще пунктирная линия разделения страниц. тогда эти строки в макете тоже нужно удалить.
4. свой вариант
Talkman,
04.05.20, 8:28 Не найден файл печатной формы 1С 7.70.003 торговля склад для Украины?
ZUBR @ Вчера, 17:31 * ,
і чим він не подобається. Це звичайне рішення, в багатьох місцях його використовують. Для користувача взагалі ніяких відмінностей небуде.

інший вихід- таблицю значень помістити прямо на форму
ZUBR,
03.05.20, 12:04 Не найден файл печатной формы 1С 7.70.003 торговля склад для Украины?
Цитата(ZUBR @ 03.05.20, 2:04) *
ZUBR @ Вчера, 21:26 * ,
Пришел к выводу, что ошибки нет, просто, когда запускается процедура не с кнопки, а с поля ввода, программа ищет таблицу в виде файла. И не находит. Можно ли обойти эту проблему?

Для виклику друку із поля вводу потрібно робити через Ложное закрытие. Здається я вже Вам раз давав як виглядає це ложне закриття.
Нагадаю:
Перем  МожноЗакрыть;

Процедура ПриОткрытии()
МожноЗакрыть=1;
КонецПроцедуры

Процедура ПечатьИзПоляВвода() // цю процедуру вішаємо на поле вводу
МожноЗакрыть = 0;
Форма.Закрыть(0);
КонецПроцедуры

    Процедура ПриЗакрытии()
    Если МожноЗакрыть = 0 Тогда
        МожноЗакрыть = 1;
        Сформувати();  // ця процедура, яку потрібно виконатити
        СтатусВозврата(0); // відмінити закриття форми
        Возврат; // протрібно якщо нижче в цій процедурі є ще якийсь код, і не потрібно щоб він виконувався
    КонецЕсли;
КонецПроцедуры


Якшо у вас на цій формі вже використовується ложне закриття для інших цілей, то використовуйте разні значення для змінної МожноЗакрыть для різних цілей, і в ПриЗакритии просто аналізуючи яке його значення виконувати потрібні дії
ZUBR,
28.04.20, 8:36 Не удается реквизит сделать периодическим 1с 7.7 конф 7.7.003
ZUBR @ Вчера, 23:00 * ,
Наскільки я зрозумів в довіднику Номенклатура реквізит КЗП записується тільки вручну. Ніякими документами він не міняється і небуде мінятись документами.
Тоді процес спрощується, Але роботи всеодно буде потрібно багато.
1. В довіднику поставити признак ПеріодичнийРеквізит. ИзменениеДокументом не ставити.
2. Зберегти конфігурацію і зайти в Предприятие. Перше значення періодичного реквізита повинно встановитись автоматично на дату наприклад 1 січня 1980 року. Це добре. (перевірити: права кнопка на номенклатурі-> Історія реквізиту). Якщо так поставилсь тоді все добре.
3. В довіднику контрагенти в процедурі ПриОткрытии прописати це (якщо його там немає);
        СохранениеПериодическихРеквизитов(2, "*");
    ИспользоватьДату(ТекущаяДата()); // періодичні реквізити будут завжди записуватись на сьогодні
//або ИспользоватьДату(РабочаяДата());// періодичні реквізити будуть записуватись на робочу дату (робочу дату можна міняти в (сервіс-Параметри-Общие)

При цьому 1С небуде задавати додаткових питань на яку дату записувати реквізити.
4. Тут саме цікаве. Всюди (в документах, в звітах, в макетах (печатних формах)), де використовується ваш реквізит КЗП потрібно замінити
Наприклад :
знач=Спр.КЗП: // було так
знач=Спр.КЗП.Получить(НужнаяДата): // змініти на це

ZUBR,

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