23
Рейтинг

wau8824ru



  •   Регистрация: 31.01.2012 (12 лет назад)

  •   Был(а) на сайте: 25.04.2024

Друзья
  • Alexey Smeshkov
  • Владимир Ковалев
  • Илья Егоров
  • Дмитрий Малышев
  • Евгений Комиссаров
  • Сергей
  • Alexandr Che
  • Андрей Волин
Подписчики 9

Рейтинг 23

Автоматический обмен при появлении файла, по регламентному заданию создаёт файл выгрузки, даже если файл загрузки не появлялся

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free) Нет файла Перенос данных 1C

Заметил, что "Автоматический обмен при появлении файла" каждый раз создаёт файл выгрузки данных, даже если файл для загрузки данных не появлялся. Данный код проверит, что файл появился, только после чего создаст файл выгрузки данных.

20.02.2020    4459    wau8824ru    4       

4

Автоматическое снятие резервов. УТ 10.3

Инструменты и обработки Бухгалтер Пользователь Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Абонемент ($m) Внешняя обработка (ert,epf) Оптовая торговля

Модуль полностью программно повторяет действие пользователя (в тексте модуля все действия выделены для удобства использования): Создаёт документ "Закрытие заказов покупателей" с видом операции "снятие резервов и размещения" - заполнить(ТЧ) - форма "Отобрать заказы покупателей" с вариантом отбора "Неоплаченные в срок заказы", после чего форма "Отобрать заказы покупателей" принимает следующий вид

1 стартмани

09.03.2017    11979    68    wau8824ru    39       

7

Счет-фактура выданный (по постановлению 1137), данные из УТ 10.3.24.1

Отчеты и формы Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бухгалтерский учет Абонемент ($m) Внешняя обработка (ert,epf) Печатные формы

Причина создания - полгода пользовались внешней печатной формой с Инфостарта, в которой в столбцах СтранаПроисхождения и НомерТаможеннойДекларации не заполнялись тире.

1 стартмани

25.10.2013    7843    78    wau8824ru    3       

4

Комментарии

Adminнастройка криптопровайдера для электронных документов#21 11.02.24 22:40
Проблема была в битности 1С:клиента, клиенты были x86, после установки x86-64 всё заработало, столько танцев с бубном. 1С:Сервер x86-64, PostgreSQL x86-64, Крипто-про x86-64, Клиенты x86-64. Для работы с сертификатами нужна оболочка на сервере linux, работает и так, но жутко не удобно.
DevНайти ссылки на документ#38 11.02.24 19:46
По аналогии с единицей измерения код должен быть примерно такой
в модуле ЕдиницыИзмерения
Код
// Обработчик события ПередЗаписью .
//
Процедура ПередЗаписью(Отказ)

   Если НЕ ОбменДанными.Загрузка
      И ТипЗнч(Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
      Если Владелец.ЕдиницаХраненияОстатков = Ссылка Тогда

         Запрос = Новый Запрос;
         Запрос.УстановитьПараметр("ТекущийЭлемент", ЭтотОбъект.Ссылка);

         Запрос.Текст =
         "ВЫБРАТЬ
         |   ЕдиницыИзмерения.Ссылка КАК Элемент,
         |   ЕдиницыИзмерения.Коэффициент КАК Коэффициент
         |ИЗ
         |   Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
         |
         |ГДЕ
         |   ЕдиницыИзмерения.Ссылка = &ТекущийЭлемент";

         Выборка = Запрос.Выполнить().Выбрать();

         Если Выборка.Следующий() Тогда
            Если Выборка.Коэффициент <> Коэффициент Тогда
               Если ПолныеПрава.Номенклатура_СуществуютСсылки(Владелец, Неопределено) Тогда
                  ОбщегоНазначения.СообщитьОбОшибке("Единица """ + СокрЛП(Наименование) + """ является единицей хранения остатков для """ + 
                                   СокрЛП(Владелец) + """ и уже участвует в товародвижении. Изменить коэффициент уже нельзя!", Отказ);
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;

      //88( Администратор 06.05.2020 10:53:03
         Если Не Отказ И ЭтотОбъект.Коэффициент <> 1 Тогда
            ОбщегоНазначения.СообщитьОбОшибке(".единица «"+СокрЛП(ЭтотОбъект.Наименование)+"» является единицей хранения остатков для «"+СокрЛП(ЭтотОбъект.Владелец)+"», коэффициент не может отличатся от 1!");
            ЭтотОбъект.Коэффициент = 1;
         КонецЕсли;
      Иначе// дополнительная единица измерения
         Если Не РольДоступна("ПравоАдминистрирования") Тогда// Администратору коэффициент изменить можно, даже при существующих ссылках в документах
            Если ЭтотОбъект.Коэффициент <> ЭтотОбъект.Ссылка.Коэффициент Тогда// коэффициент был изменён
               Если ПолныеПрава.ЕдиницыИзмерения_СуществуютСсылки(ЭтотОбъект.Ссылка, Неопределено) Тогда
                  ОбщегоНазначения.СообщитьОбОшибке(".единица измерения «"+СокрЛП(ЭтотОбъект.Наименование)+"» участвует в документах. Изменить коэффициент уже нельзя, обратитесь к Администратору!");
                  ЭтотОбъект.Коэффициент = ЭтотОбъект.Ссылка.Коэффициент;
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;
      //)88 Администратор 06.05.2020 10:53:06
      КонецЕсли;
   КонецЕсли;

   Если Не ОбменДанными.Загрузка
      И Не Отказ
      И Коэффициент = 0 Тогда
      ОбщегоНазначения.СообщитьОбОшибке("Для "+СокрЛП(Владелец)+" у единицы измерения "+СокрЛП(Ссылка)+" не задан коэффициент! Он будет установлен равным 1.");
      Коэффициент = 1;
   КонецЕсли;

КонецПроцедуры // ПередЗаписью()

// Функция проверяет, существуют ли ссылки на единицу измерения в документах.
// Если есть - нельзя менять коэффицент
//
// Параметры:
//  СуществуютСсылки - булево, переменная, в которой сохраняется результат работы функции, чтобы
//                     при последующих вызовах заново не считать функцию.
//
// Возвращаемое значение:
//  Истина - если есть ссылки в документах, Ложь - если нет.
//
Функция ЕдиницыИзмерения_СуществуютСсылки(Ссылка, СуществуютСсылки) Экспорт
   
   Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
      Возврат Ложь;
   ИначеЕсли СуществуютСсылки <> Неопределено Тогда
      Возврат СуществуютСсылки; // уже было рассчитано
   КонецЕсли;
   
   Запрос = Новый Запрос();
   
   Запрос.УстановитьПараметр("ТекущаяЕдиницаИзмерения", Ссылка);
   
   ТипЕдиницаИзмерения = Тип("СправочникСсылка.ЕдиницыИзмерения");
   
   Запрос.Текст = "";
   
   Для Каждого Документ Из Метаданные.Документы Цикл
      Для Каждого ТабличнаяЧасть Из Документ.ТабличныеЧасти Цикл
         Для Каждого РеквизитТабличнаяЧасть Из ТабличнаяЧасть.Реквизиты Цикл
            Если РеквизитТабличнаяЧасть.Тип.СодержитТип(ТипЕдиницаИзмерения) Тогда
               Если Запрос.Текст <> "" Тогда
                  Запрос.Текст = Запрос.Текст+"
                     |ОБЪЕДИНИТЬ ВСЕ
                     |";
               КонецЕсли;
               Запрос.Текст = Запрос.Текст+"
                  |ВЫБРАТЬ ПЕРВЫЕ 1
                  |   1 КАК Результат
                  |ИЗ
                  |   Документ."+Документ.Имя+"."+ТабличнаяЧасть.Имя+" КАК Док
                  |ГДЕ
                  |   Док."+РеквизитТабличнаяЧасть.Имя+" = &ТекущаяЕдиницаИзмерения
                  |";
            КонецЕсли;
         КонецЦикла;
      КонецЦикла;
   КонецЦикла;
   
   Возврат Не Запрос.Выполнить().Пустой();
   
КонецФункции
ОбменОбмен между базами#5 11.02.24 19:43
(1) 8лет назад перешли на PostgreSQL, Тоже столкнулся с этой проблемой, перешли на "Обмен через файловый ресурс", из-за перехода на "Обмен через файловый ресурс" возникает потребность в регламентном задании каждые 10сек для Автоматической загрузки, ведь при Com-соединении при инициализации обмена происходит Выгрузка и Загрузка за один подход.
Для обмена на 1с:сервере в Linux формат каталога для обмена нужно указывать в формате "\home\share\base1c\tmp\exchange\" где "\home" каталог в корне сервера, пробовал через samba, но 1с:сервер видя что он в Linux не понимал шару вида "//base1c", может допилили.
Обмен по событиям "при появлении файла" без периодического регламентного задания на linux не видит появление файла.
И еще из-за регламентного задания проверки появления файла возникает периодическая инициализация выполнение обмена, и каждое выполнения регламентного задания 1с:сервер пересоздаёт ответный файл, даже без "при появлении файла". вот здесь есть решение проблемы https://infostart.ru/1c/articles/1198647/
DevНачал тормозить подбор товаров УТ 11.4 (клиент-сервер)#11 17.01.24 23:17
(3) Извиняюсь, не дочитал до конца. А блокировки регламентных заданий случаем нет? на ИБ
DevНачал тормозить подбор товаров УТ 11.4 (клиент-сервер)#10 17.01.24 22:43
(3) Открываете конфигуратор запускаете отладку, в режиме предприятия открываете место до того как появляются тормоза, заходите в конфигуратор, "Отладка" - "Замер производительности" нажимаете кнопку, переходите в режим предприятия открываете место когда начинаются тормоза, лазите в этом месте, затем переходите в конфигуратор отжимаете кнопку "Замер производительности", и смотрите куда девается драгоценное время.

Прикрепленные файлы:

Безымянный.png
DevНачал тормозить подбор товаров УТ 11.4 (клиент-сервер)#2 17.01.24 11:36
Замер производительности? что говорит
БУТОРГ-2 (Акт об установленном расхождении) для УТ 10.3#5 06.12.23 13:35
(4)
Цитата
Спасибо за совет, воспользуюсь. Значение Уникального идентификатора где смотрите для элемента справочника?
Код
   Если ЗначениеЗаполнено(ПолеВводаСсылка) Тогда
      УникальныйИдентификатор = ПолеВводаСсылка.УникальныйИдентификатор();
      Сообщить(УникальныйИдентификатор);
   КонецЕсли;

Или так
Код
   УникальныйИдентификатор = Справочники.Организации.НайтиПоКоду("000000020").УникальныйИдентификатор();
   Сообщить(УникальныйИдентификатор);

Прикрепленные файлы:

УникальныйИдентификатор по ссылке.epf
БУТОРГ-2 (Акт об установленном расхождении) для УТ 10.3#3 06.12.23 9:31
(2)
лучше так
Код
Если Шапка.Организация = Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор("a66400be-ce54-11e9-7296-0cc47a6c5738")) Тогда// Организация Легион
БУТОРГ-2 (Акт об установленном расхождении) для УТ 10.3#2 06.12.23 8:57
Здравствуйте! Спасибо за обработку.

но
Код
   Если СокрЛП(Шапка.Организация.Код)="000000020" Тогда //Легион
      ПредставлениеПоставщика = СтрЗаменить(ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"),"дом №","д.");
   //   ПараметрыПечати.Вставить("ПредставлениеПоставщика", СтрЗаменить(ПредставлениеПоставщика,"дом №","д."));
      ПараметрыПечати.Вставить("ПредставлениеПоставщика", СтрЗаменить(ПредставлениеПоставщика,"оф","ком"));
      Если Шапка.Организация = Шапка.Грузоотправитель Тогда
         ПредставлениеГрузоотправителя = СтрЗаменить(ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"),"дом №","д.");
   //      ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", СтрЗаменить(ПредставлениеГрузоотправителя,"дом №","д."));
         ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", СтрЗаменить(ПредставлениеГрузоотправителя,"оф","ком"));
      Иначе
         ПредставлениеГрузоотправителя = СтрЗаменить(ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,"),"дом №","д.");
   //      ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", СтрЗаменить(ПредставлениеГрузоотправителя,"дом №","д."));
         ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", СтрЗаменить(ПредставлениеГрузоотправителя,"оф","ком"));
      КонецЕсли;
   Иначе  // НЕ Легион

серьёзно?
Adminнастройка криптопровайдера для электронных документов#16 11.12.22 0:06
(14)
Цитата
Ну, похоже, теперь моя очередь постить картинки. :-)
Аккуратней, затягивает :-)