Белевич Денис

3
Рейтинг

Denis-PP
Денис Белевич



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

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

Подписчики 0

Рейтинг 3


Комментарии

DevОбновить форму динамического списка со стороны сервера#13 30.09.21 19:33
Для меня наверное выход автообновление
DevОбновить форму динамического списка со стороны сервера#7 30.09.21 13:17
подписка на событие тоже только серверные процедуры выполняет
DevОбновить форму динамического списка со стороны сервера#1 30.09.21 8:04
Есть форма списка документа, динамический список с произвольным запросом, к основной таблице левым соединением присоединяю колонку "состояние" из другой таблицы. При изменении статуса оплаты хотелось бы сразу обновить форму списка, но так как изменяется не основная таблица то динамическое обновление не срабатывает, второе документ изменяющий статус оплаты он создается программно, из другой программы 1с, методы по обновлению формы, которые я нашел работают на клиенте, а мне нужно со стороны сервера как-то сделать

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

вопрос1.png
ОбменСоздание ведомостей на выплату зарплаты в банк из XML банка#0 10.03.20 15:33
Обработка создает документы ведомость на выплату зарплаты в банк из файлов XML (Выгруженного с банка). Множественный выбор проверено на Бухгалтерии 3.0.62.17.
DevСложная группировка в скд#1 02.12.19 13:25
Существует запрос в скд с полями Время, Дата, Вид Перевозки, Транспорт, марка.
Нужно получить в отчете таблицу с группировкой колонок по Марке и группировкой строки Вид Перевозки.
Сложность заключается в том что группировки в запросе игнорируются и их нужно описывать средствами скд.
В детальных записях необходимо посчитать количество дней работы каждой марки в разрезе Вид перевозки.
с толкнулся с тем что один транспорт за один день может отработать на разных видах перевозок
пример 2 раза в городе по одному часу и полтора часа на заказе, что получается нужно просуммировать за один день каждый транспорт по каждому виду перевозок и получить 2 часа в городе и полтора на заказе, потом найти максимум это 2 часа в городе и зачесть это значение как 1, ну а потом посчитать все дни в разрезе марок транспорта, как это можно сгруппировать, если в ресурсах пишу несколько выражений ругается нельзя использовать вложенные запросы
ОбменПеренос данных регистра сведений из обной базы в регистр сведений другой ИБ через WEB#7 10.10.18 7:31
Решил все следующим образом.
Создал набор записей из регистра сведений ИБ приемника и выгрузил их в таблицу значений
Далее добавил колонку назвал её сравнение и в каждой строчке добавил значение -1
Данные полученные из базы отправителя я тоже добавил в таблицу значений но в колонке сравнение поставил 1
Свернул таблицу по всем колонкам кроме сравнение, а сравнение полем суммирования
В итоге получилось что если значение уже существует то в колонке сравнение получиться 0,если новое значение то будет 1 эти записи я и добавляю, ну а если в приемнике есть запись которая отсутствует в базе отправителя то там будет -1, я такие записи удаляю, всё
код прилагаю

Код
Функция SpisokSostoyanya(Parametr)
   СчДобавленных = 0;
   СчУдаленных = 0;
      
   НаборСостояний = РегистрыСведений.СостоянияСотрудников.СоздатьНаборЗаписей();  
   НаборСостояний.Прочитать();
   ТаблицаСостояний = НаборСостояний.Выгрузить();
   
   КЧ = Новый КвалификаторыЧисла(1,0);
   Массив = Новый Массив;
   Массив.Добавить(Тип("Число"));
   ОписаниеТиповЧ = Новый ОписаниеТипов(Массив,,,КЧ);
   ТаблицаСостояний.Колонки.Добавить("Сравнение",ОписаниеТиповЧ,,);
   Для Каждого СтрТаблицаСостояний из ТаблицаСостояний Цикл
      СтрТаблицаСостояний.Сравнение = -1;
   КонецЦикла;
   КолличествоСтрокСуществует = ТаблицаСостояний.Количество();
   
   Для Каждого стрParametr из Parametr.Sostoyaniya Цикл
      НоваяСтрокаТаблицаСостояний = ТаблицаСостояний.Добавить();
      НоваяСтрокаТаблицаСостояний.Период = стрParametr.DatNachalo;
      НоваяСтрокаТаблицаСостояний.ДействуетДо = стрParametr.DatOkonchanie;
      НоваяСтрокаТаблицаСостояний.Состояние = Перечисления.СостоянияСотрудника[стрParametr.VidSostoyaniya];
      НоваяСтрокаТаблицаСостояний.Сотрудник = Справочники.Сотрудники.НайтиПоРеквизиту("GUID",стрParametr.GUID);
      НоваяСтрокаТаблицаСостояний.СотрудникGUID = стрParametr.GUID;
      НоваяСтрокаТаблицаСостояний.Сравнение = 1;      
   КонецЦикла;
   
   КолличествоСтрокСтало = ТаблицаСостояний.Количество();
   
   ТаблицаСостояний.Свернуть("Период,ДействуетДо,Состояние,Сотрудник,СотрудникGUID","Сравнение");
   
   КолличествоСтрокСвернуто = ТаблицаСостояний.Количество();
   
   Для Каждого Строка из ТаблицаСостояний Цикл         
      Если Строка.Сравнение = 1 Тогда
         НовоеСостояние = РегистрыСведений.СостоянияСотрудников.СоздатьМенеджерЗаписи();
         НовоеСостояние.СотрудникGUID = Строка.СотрудникGUID;
         НовоеСостояние.Сотрудник = Строка.Сотрудник;;
         НовоеСостояние.Состояние = Строка.Состояние;
         НовоеСостояние.Период = Строка.Период;
         НовоеСостояние.ДействуетДо = Строка.ДействуетДо;         
         НовоеСостояние.Записать();
         СчДобавленных = СчДобавленных + 1;
      ИначеЕсли Строка.Сравнение = -1 Тогда
         УдалитьСостояние = РегистрыСведений.СостоянияСотрудников.СоздатьМенеджерЗаписи();
         УдалитьСостояние.СотрудникGUID = Строка.СотрудникGUID;
         УдалитьСостояние.Сотрудник = Строка.Сотрудник;
         УдалитьСостояние.Состояние = Строка.Состояние;
         УдалитьСостояние.Период = Строка.Период;
         УдалитьСостояние.ДействуетДо = Строка.ДействуетДо;
         УдалитьСостояние.Прочитать();
         УдалитьСостояние.Удалить();         
         СчУдаленных = СчУдаленных + 1;
      КонецЕсли;
   КонецЦикла;      
   
   
   
   Возврат Строка("Строк существует" + КолличествоСтрокСуществует + " стало " + КолличествоСтрокСтало + " После сворачивания " + КолличествоСтрокСвернуто + " Добавлено " + СчДобавленных + " Удалено " + СчУдаленных)

КонецФункции
ОбменПеренос данных регистра сведений из обной базы в регистр сведений другой ИБ через WEB#6 09.10.18 10:43
(4) Я в ИБ приемнике в справочнике сотрудник создал реквизит GUID который является идентификатором ссылки сотрудника из базы отправителя, по этому идентификатору я и синхронизирую справочник сотрудники
ОбменПеренос данных регистра сведений из обной базы в регистр сведений другой ИБ через WEB#1 09.10.18 7:04
Здравствуйте форумчане! Помогите советом. Есть две абсолютно разные базы ЗУП3.1 типовая и самописная. Цель односторонняя синхронизация списка сотрудников, а также состояний (работа, уволен и т.д.). Справочник Сотрудники у меня получилось синхронизировать. Но с состояниями проблема. не могу понять как отслеживать уже добавленные строки ранее и добавлять только отсутствующие. У меня мысли такие нужно перевести регистры в таблицы значений и сравнить их, но как сравнить не понимаю. помогите . передаю вот такие параметры через xdto


Код
Индекс   Значение элемента   Тип элемента   GUID   VidSostoyaniya   DatNachalo   DatOkonchanie   GUIDRegistrator   NStr
0   ОбъектXDTO   ОбъектXDTO   "dc4a0b2d-f597-11e5-b5e6-406186c53bda"   "Болезнь"   08.07.2017 0:00:00   12.07.2017 0:00:00   "fb4ae9e2-6b98-11e7-80ad-000c295f004f"   1
1   ОбъектXDTO   ОбъектXDTO   "28b99175-f4c8-11e5-9254-406186c53bda"   "Болезнь"   30.06.2017 0:00:00   12.07.2017 0:00:00   "46970e44-6b99-11e7-80ad-000c295f004f"   1
2   ОбъектXDTO   ОбъектXDTO   "8d660648-f6f7-11e5-b385-406186c53bda"   "Болезнь"   01.07.2017 0:00:00   12.07.2017 0:00:00   "71248cb3-6b99-11e7-80ad-000c295f004f"   1
3   ОбъектXDTO   ОбъектXDTO   "2af58778-f621-11e5-aed0-406186c53bda"   "Болезнь"   04.07.2017 0:00:00   11.07.2017 0:00:00   "828a5b92-6b99-11e7-80ad-000c295f004f"   1
4   ОбъектXDTO   ОбъектXDTO   "2346d4f0-f260-11e5-894a-406186c53bda"   "Болезнь"   27.06.2017 0:00:00   11.07.2017 0:00:00   "9d82f5b1-6b99-11e7-80ad-000c295f004f"   1
5   ОбъектXDTO   ОбъектXDTO   "0517f4db-f62e-11e5-aed0-406186c53bda"   "Болезнь"   14.06.2017 0:00:00   13.07.2017 0:00:00   "1d9ad210-7120-11e7-80ad-000c295f004f"   1
6   ОбъектXDTO   ОбъектXDTO   "0517f4db-f62e-11e5-aed0-406186c53bda"   "Болезнь"   14.07.2017 0:00:00   25.07.2017 0:00:00   "43220bd0-7120-11e7-80ad-000c295f004f"   1
7   ОбъектXDTO   ОбъектXDTO   "9aef3ce1-f55f-11e5-a17e-406186c53bda"   "Болезнь"   18.07.2016 0:00:00   30.07.2016 0:00:00   "076e9f28-586c-11e6-8113-e4737703cdea"   1
8   ОбъектXDTO   ОбъектXDTO   "2346d503-f260-11e5-894a-406186c53bda"   "Болезнь"   13.07.2016 0:00:00   21.07.2016 0:00:00   "076e9f33-586c-11e6-8113-e4737703cdea"   1
9   ОбъектXDTO   ОбъектXDTO   "72be0595-f26b-11e5-894a-406186c53bda"   "Болезнь"   16.06.2016 0:00:00   30.06.2016 0:00:00   "076e9f41-586c-11e6-8113-e4737703cdea"   1
10   ОбъектXDTO   ОбъектXDTO   "72be0595-f26b-11e5-894a-406186c53bda"   "Болезнь"   01.07.2016 0:00:00   03.07.2016 0:00:00   "21ee2121-5898-11e6-8113-e4737703cdea"   1
11   ОбъектXDTO   ОбъектXDTO   "72be0595-f26b-11e5-894a-406186c53bda"   "Болезнь"   04.07.2016 0:00:00   14.07.2016 0:00:00   "21ee212c-5898-11e6-8113-e4737703cdea"   1
ОбменПомогите разобраться с обменом списка сотрудников#1 10.09.18 9:58
Здравствуйте!
Помогите разобраться с обменом списка сотрудников
Хочу передать список сотрудников и табельный номер, для этого создал пакет xdto, во вложении схема xsd.

Далее в модуле написал
Код
Функция SpisokSotrudnikov()
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |   Сотрудники.Код КАК Код,
                  |   Сотрудники.Наименование КАК Наименование
                  |ИЗ
                  |   Справочник.Сотрудники КАК Сотрудники";
   
   
   ТипСтрокаСотрудники = ФабрикаXDTO.Тип("http://www.sample-package.org","SotrudnikStr");
    ТипТаблицаСотрудники = ФабрикаXDTO.Тип("http://www.sample-package.org","SpisokSotrudnikov");
   
   ТаблицаСотрудников = ФабрикаXDTO.Создать(ТипТаблицаСотрудники);
   
   РезультатЗапроса = Запрос.Выполнить().Выбрать();
    
    Пока РезультатЗапроса.Следующий() Цикл
        //создадим строчку номенклатуры
        СтрокаСотрудника = ФабрикаXDTO.Создать(ТипСтрокаСотрудники);
        //и заполним свойства
        СтрокаСотрудника.TableNamber = РезультатЗапроса.Код;
        СтрокаСотрудника.Name = РезультатЗапроса.Наименование;
       ТаблицаСотрудников.SotrudnikStr.Добавить(СтрокаСотрудника);
   КонецЦикла;
   Возврат ТаблицаСотрудников;

КонецФункции


В базе приемнике при вызове ошибка :


{Справочник.Сотрудники.Форма.ФормаСписка.Форма(61)}: Ошибка при вызове метода контекста (SpisokSotrudnikov)
ТестСвязи = Прокси.SpisokSotrudnikov();
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://localhost}:test:SpisokSotrudnikov()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неизвестная ошибка. {WebСервис.test.Модуль(20)}: Ошибка при вызове метода контекста (Создать)
по причине:
{WebСервис.test.Модуль(20)}: Ошибка при вызове метода контекста (Создать)
по причине:
Несоответствие типов (параметр номер '1')
Код ошибки: Client
Техническая информация:
<detail xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>

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

xdto.xsd