goodwill Никита

20
Рейтинг

goodwill



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

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

Друзья
  • Зарина Дзоциева
Подписчики 4

Рейтинг 20

Расчетная ведомость Т-51 подробная [ЗУП 2.5]

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

Внешний отчет Расчетная ведомость по форме Т-51, детализированный по видам расчетов, добавлена информация о выплате заработной платы.

1 стартмани

21.05.2015    29065    156    goodwill    19       

6

Расчетнo-платежная ведомость [ЗУП 2.5]

Отчеты и формы Бухгалтер Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 2.5 Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Абонемент ($m) Внешний отчет (ert,erf) Зарплата

Внешний отчет "Расчетная платежная ведомость" в произвольной форме, детализированный по видам расчетов, информация о начислениях, удержаниях, страховых взносах, выплатах.

1 стартмани

15.05.2015    12746    28    goodwill    3       

1

Перенос данных из ТиС 9.2 [v77] в БП 2.0 [v82] OLE

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 1С:Бухгалтерия 2.0 Windows Абонемент ($m) Внешняя обработка (ert,epf) Перенос данных 1C

Обработка предназначена для выполнения регулярного переноса документов из торговли на v77 в бухгалтерию на v82.

1 стартмани

02.06.2013    13467    118    goodwill    12       

13

Комментарии

DevОтлов пометки на удаление документа из формы списка, через "ПодключитьОбработчикОповещения"#17 26.09.19 15:22
Оповестить работает только на клиенте, здесь вызывается я так понимаю в модуле объекта на сервере. Хотя судя по дате публикации речь шла о толстом клиенте.

Увидел это уже обсуждали выше
DevОтлов пометки на удаление документа из формы списка, через "ПодключитьОбработчикОповещения"#16 26.09.19 15:20
Оповестить работает только на клиенте, здесь вызывается я так понимаю в модуле объекта на сервере. Хотя судя по дате публикации речь шла о толстом клиенте.
DevСоздание множественного дополнительного реквизита. Управление торговлей 11#12 02.07.19 15:40
Большое спасибо за выложенный материал, очень помог.

Хочу добавить от себя немного, Мне показалось не очень удачным определять множественный реквизит по GUID, в разных базах они разные и код получается не универсальным. Так же нет возможности добавить несколько множественных реквизитов. Для того что бы это исправить я добавил в ПланВидовХарактеристик.ДополнитеотныеРеквизитыИСведения новый реквизит МножественныйРеквизит

Изменения от первоначальной статьи следующие
1) Функция ПолучитьУИДМножественногоСвойства() не нужна
2) В модуле УправлениСвойствами

Код
Если ОписаниеСвойства.Свойство.МножественныйРеквизит Тогда
   ОписаниеСвойства.ИмяУникальнаяЧасть = ОписаниеСвойства.ИмяУникальнаяЧасть    +"_"+ Строка(СчСвойств);            
   СчСвойств = СчСвойств + 1;                                                  
КонецЕсли;


3) УправлениеСвойствамиСлужебный

Код

// < -- xs
СоответствиеСвойствЭтоПервый = Новый Соответствие;
// xs -- > 
   
// Заполнение значений свойств.
Для Каждого Строка Из ДополнительныеСвойстваОбъекта Цикл
   ОписаниеСвойства = ОписаниеСвойств.Найти(Строка.Свойство, "Свойство");
   Если ОписаниеСвойства <> Неопределено Тогда
      
      // < -- xs
      Если СоответствиеСвойствЭтоПервый.Получить(Строка.Свойство) = Неопределено Тогда
         СоответствиеСвойствЭтоПервый.Вставить(Строка.Свойство, Истина);
      КонецЕсли; 
      
      Если Строка.Свойство.МножественныйРеквизит Тогда
         
         Если СоответствиеСвойствЭтоПервый.Получить(Строка.Свойство) Тогда
            СоответствиеСвойствЭтоПервый.Вставить(Строка.Свойство, Ложь);
         Иначе 
            фКэшОписания = ОписаниеСвойства;
            ОписаниеСвойства = ОписаниеСвойств.Добавить();
            ЗаполнитьЗначенияСвойств(ОписаниеСвойства, фКэшОписания);
         КонецЕсли;
      КонецЕсли;
      // xs -- > 

      // Поддержка строк неограниченной длины.
      Если НЕ ЭтоДополнительноеСведение
         И ИспользоватьНеограниченнуюСтроку(
               ОписаниеСвойства.ТипЗначения, ОписаниеСвойства.МногострочноеПолеВвода)
         И НЕ ПустаяСтрока(Строка.ТекстоваяСтрока) Тогда 
         
         ОписаниеСвойства.Значение = Строка.ТекстоваяСтрока;
      Иначе
         ОписаниеСвойства.Значение = Строка.Значение;
         КонецЕсли;
   КонецЕсли;
КонецЦикла;


4) Форма элемента справочника Номенклатура, так же добавил туда кнопку удаления реквизита.

Код

&НаСервере
Процедура хот_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
   
   НоваяКоманда = ЭтаФорма.Команды.Добавить("СкопироватьСвойство");
   НоваяКоманда.Заголовок = "+";
   НоваяКоманда.Действие = "хот_СкопироватьСвойство";
   
   НоваяКоманда = ЭтаФорма.Команды.Добавить("УдалитьСвойство");
   НоваяКоманда.Заголовок = "-";
   НоваяКоманда.Действие = "хот_УдалитьСвойство"; 
   
   Для каждого стрДополнительногоРеквизита Из ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов Цикл
      
      Если НЕ стрДополнительногоРеквизита.Свойство.МножественныйРеквизит Тогда
         Продолжить;
      КонецЕсли; 
         
      Если Элементы.Найти("КнопкаСкопироватьСвойство") = Неопределено Тогда
         НоваяКнопка = Элементы.Добавить("КнопкаСкопироватьСвойство", Тип("КнопкаФормы"),   Элементы.Найти("ГруппаДополнительныеРеквизитыКнопки"));
         НоваяКнопка.ИмяКоманды = "СкопироватьСвойство";
      КонецЕсли; 
      
   КонецЦикла; 
   
   спМножественныхСвойств = ПолучитьСписокМножественныхСвойств();
   Если спМножественныхСвойств.Количество() > 0 Тогда
      НоваяКнопка = Элементы.Добавить("КнопкаУдалитьСвойство", Тип("КнопкаФормы"), Элементы.Найти("ГруппаДополнительныеРеквизитыКнопки"));
      НоваяКнопка.ИмяКоманды = "УдалитьСвойство";
   КонецЕсли;
      
КонецПроцедуры

&НаСервере
Функция ПолучитьСписокМножественныхСвойств()
   
   спМножественныхСвойств = Новый СписокЗначений;
   
   вт_Свойства = ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов.Выгрузить();
   вт_Свойства.Колонки.Добавить("Счетчик");
   вт_Свойства.ЗаполнитьЗначения(1, "Счетчик");
   вт_Свойства.Свернуть("Свойство", "Счетчик");
   
   Для Каждого стрСвойство из вт_Свойства Цикл 
      Если стрСвойство.Счетчик > 1 Тогда
         спМножественныхСвойств.Добавить(стрСвойство.Свойство);
      конецЕсли
   КонецЦикла;
   
   Возврат спМножественныхСвойств;
   
КонецФункции

&НаСервере
Функция ПолучитьСписокМножественныхСвойствВсе()
   
   спМножественныхСвойств = Новый СписокЗначений;
   
   Для каждого стрДополнительногоРеквизита Из ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов Цикл
      
      Если НЕ спМножественныхСвойств.НайтиПоЗначению(стрДополнительногоРеквизита.Свойство) = Неопределено Тогда
         Продолжить;
      КонецЕсли; 
      
      Если стрДополнительногоРеквизита.Свойство.МножественныйРеквизит Тогда
         спМножественныхСвойств.Добавить(стрДополнительногоРеквизита.Свойство);
      КонецЕсли; 
      
   КонецЦикла;
   
   Возврат спМножественныхСвойств;
   
КонецФункции

&НаКлиенте
Процедура хот_СкопироватьСвойство()
   
   спМножественныхСвойств = ПолучитьСписокМножественныхСвойствВсе();
   
   Оповещение = Новый ОписаниеОповещения("хот_ПослеВыбораИзМеню", ЭтотОбъект);
   ПоказатьВыборИзМеню(Оповещение, спМножественныхСвойств, Элементы.КнопкаСкопироватьСвойство);
   
КонецПроцедуры

&НаКлиенте
Процедура хот_УдалитьСвойство()
   
   //Список свойств, для которых есть несколько значений
   спМножественныхСвойств = ПолучитьСписокМножественныхСвойств();
   
   спМножественныхСвойствВыбор = Новый СписокЗначений;
   Для каждого стрДополнительногоРеквизита Из ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов Цикл
      
      Если спМножественныхСвойств.НайтиПоЗначению(стрДополнительногоРеквизита.Свойство) = Неопределено Тогда
         Продолжить;
      КонецЕсли; 
      
      спМножественныхСвойствВыбор.Добавить(стрДополнительногоРеквизита, СокрЛП(стрДополнительногоРеквизита.Свойство) + " " + СокрЛП(ЭтаФорма[стрДополнительногоРеквизита.ИмяРеквизитаЗначение]));
            
   КонецЦикла;
   
   Оповещение = Новый ОписаниеОповещения("хот_ПослеВыбораИзМенюУдалитьСвойство", ЭтотОбъект);
   ПоказатьВыборИзМеню(Оповещение, спМножественныхСвойствВыбор, Элементы.КнопкаУдалитьСвойство);
   
КонецПроцедуры

&НаКлиенте
Процедура хот_ПослеВыбораИзМеню(ВыбранныйЭлемент, Параметры) Экспорт
   Если НЕ ВыбранныйЭлемент = Неопределено Тогда
      хот_ДобавитьРеквизиты(ВыбранныйЭлемент.Значение)
   КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура хот_ПослеВыбораИзМенюУдалитьСвойство(ВыбранныйЭлемент, Параметры) Экспорт
   Если НЕ ВыбранныйЭлемент = Неопределено Тогда
      УдалитьСвойство(ВыбранныйЭлемент.Значение.ИмяРеквизитаЗначение);
   КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура УдалитьСвойство(ИмяРеквизитаЗначение)
   Элементы.Удалить(Элементы.Найти(ИмяРеквизитаЗначение));
   
   НайденныеСтроки = ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Новый Структура("ИмяРеквизитаЗначение", ИмяРеквизитаЗначение));
   Для Каждого стрСвойство Из НайденныеСтроки Цикл 
      ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов.Удалить(стрСвойство);
   КонецЦикла;
   
Конецпроцедуры

&НаСервере
Процедура хот_ДобавитьРеквизиты(ДопРеквизит)
   
   ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.ЗначенияСвойствОбъектов");
   Для каждого стрДополнительногоРеквизита Из ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов Цикл
      Если стрДополнительногоРеквизита.Свойство = ДопРеквизит Тогда
         ОписаниеТипа = стрДополнительногоРеквизита.ТипЗначения;      
         Прервать;
      КонецЕсли; 
   КонецЦикла;
   
   ИмяРеквизита = СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки("ДополнительныйРеквизит_" + Строка(Новый УникальныйИдентификатор));
   лСвойство = ДопРеквизит;
   
   лМассив = Новый Массив;
   лМассив.Добавить(Новый РеквизитФормы(ИмяРеквизита, ОписаниеТипа,,ДопРеквизит.Наименование, Истина));
   ИзменитьРеквизиты(лМассив);
   
   НовЭлемент = Элементы.Вставить(ИмяРеквизита, Тип("ПолеФормы"), Элементы.Найти("ГруппаДополнительныеРеквизиты"));
   НовЭлемент.ПутьКДанным = ИмяРеквизита;
   НовЭлемент.Вид = ВидПоляФормы.ПолеВвода;
   
   МассивПараметров = Новый Массив;
   МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.Владелец", лСвойство));
   
   Элементы[ИмяРеквизита].ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
   
   ДобавитьСвойство(ЭтаФорма, ИмяРеквизита, лСвойство);
   
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ДобавитьСвойство(лФорма, ИмяРеквизита, Свойство)

   лШаблон = лФорма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Новый Структура("Свойство", Свойство));
   НовоеСвойство = лФорма.Свойства_ОписаниеДополнительныхРеквизитов.Добавить();
   
   Если лШаблон.Количество() > 0 Тогда
      ЗаполнитьЗначенияСвойств(НовоеСвойство, лШаблон[0]);
      НовоеСвойство.ИмяРеквизитаЗначение = ИмяРеквизита;
   КонецЕсли;
   
КонецПроцедуры




5) Модуль Б_ОбменССайтомСерверВыгрузкаДанных

Процедура ВыгрузитьСвойстваXDTO

Код
// < -- xs
XDTOСвойство.Множественное = ТекСвойство.СвойствоНоменклатуры.МножественныйРеквизит;
// xs -- > 


Процедура ВыгрузитьСвойстваНоменклатурыXDTO

Код

Процедура ВыгрузитьСвойстваНоменклатурыXDTO(ПараметрыОбмена, Владелец, ВладелецТип, ВыборкаНоменклатуры, МенеджерВременныхТаблиц);
   
   XDTOЗначенияСвойствТип    = Б_ОбменССайтомСервер.ПолучениеТипОбъектаXDTO(ПараметрыОбмена,  "ЗначенияСвойств", Истина, ВладелецТип);
   XDTOЗначенияСвойстваТип = Б_ОбменССайтомСервер.ПолучениеТипОбъектаXDTO(ПараметрыОбмена,  "ЗначенияСвойства");
   
   // < -- xs
   XDTOЗначениеСвойства_МножТип = Б_ОбменССайтомСервер.ПолучениеТипОбъектаXDTO(ПараметрыОбмена,  "ЗначениеСвойства", Истина, XDTOЗначенияСвойстваТип);
   // xs -- > 
   
   Запрос = Новый Запрос;
   запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
   запрос.Текст =  "ВЫБРАТЬ *
   |ИЗ
   |   ВремЗначенияСвойствТовара КАК ВремЗначенияСвойствТовара
   |ГДЕ
   |   (ВремЗначенияСвойствТовара.Номенклатура = &Номенклатура   
   |И НЕ ВремЗначенияСвойствТовара.НеВыгружатьВСвойстваТоваров)";
   
   Запрос.УстановитьПараметр("Номенклатура", ВыборкаНоменклатуры.Номенклатура);
   Выборка = Запрос.Выполнить();
   
   Если НЕ Выборка.Пустой() тогда   
      ВыборкаСвойств = Выборка.Выбрать();
      XDTOЗначенияСвойств = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойствТип);
      
      // < -- xs
      XDTOЗначенияСвойства_Множ = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойстваТип);
      // xs -- > 
      
      Пока ВыборкаСвойств.Следующий() Цикл
         
         XDTOЗначенияСвойства = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойстваТип);
         
         XDTOЗначенияСвойства.Ид = XMLСтрока(ВыборкаСвойств.ИдентификаторСвойства);
         
         // < -- xs
         Если ВыборкаСвойств.Свойство.МножественныйРеквизит Тогда
            XDTOЗначениеСвойстваМнож = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначениеСвойства_МножТип);
            XDTOЗначениеСвойстваМнож.Значение = XMLСтрока(ВыборкаСвойств.ИдентификаторЗначения);
            
             XDTOЗначенияСвойства_Множ.Ид = XMLСтрока(ВыборкаСвойств.ИдентификаторСвойства);
            XDTOЗначенияСвойства_Множ.ЗначениеСвойства.Добавить(XDTOЗначениеСвойстваМнож);
            XDTOЗначенияСвойства_Множ.Значение.Добавить(XMLСтрока(ВыборкаСвойств.ИдентификаторЗначения));
            Продолжить;
         КонецЕсли;
         // xs -- > 
         
         XDTOЗначенияСвойства.Значение.Добавить(XMLСтрока(ВыборкаСвойств.ИдентификаторЗначения));
         
         XDTOЗначенияСвойств.ЗначенияСвойства.Добавить(XDTOЗначенияСвойства);   
         
      КонецЦикла;
      
      // < -- xs   
      XDTOЗначенияСвойств.ЗначенияСвойства.Добавить(XDTOЗначенияСвойства_Множ);
      // xs -- >

      Владелец.ЗначенияСвойств = XDTOЗначенияСвойств;
   КонецЕсли;
   
КонецПроцедуры

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

sc1.jpg
sc2.jpg
UtilsПеренос присоединенных файлов в тома#28 02.03.18 1:24
Спасибо. УТ 11.3.4.59 прошло без ошибок
БУРасчетная ведомость Т-51 подробная [ЗУП 2.5]#14 23.12.17 10:09
(13) Нет, данный отчет для редакции 2.5
БУРасчетная ведомость Т-51 подробная [ЗУП 2.5]#11 12.07.17 22:17
(10) Отчет анализирует уже готовые начисления из регистров, способ их расчета не имеет отношения к этому отчету. В отчете используются только названия видов расчетов по которым сделаны начисления.
БУСчет-фактура с подписями уполномоченных лиц. БП 3.0#3 30.06.17 0:49
Да вроде бы работало все люди пользуются не жалуются) У Вас какой релиз используется? Ну и судя по скриншоту вы либо переименовывали обработку либо это вообще не эта. т.к. эта по умолчанию называется "Счет фактура (подписи)"
БУСчет-фактура с подписями уполномоченных лиц. БП 3.0#0 28.06.17 16:45
Счета-фактуры с подписями уполномоченных лиц Постановление № 625 от 25.05.2017.
DevПолезные приемы при работе с Excel из 1С (Версия 3.1)#33 29.11.16 17:20
Ширина в Excel задается в символах, что не очень удобно при выводе картинок. Вот функция для перевода ширины в пикселя в ширину в символах.

Код
&НаКлиенте
Функция ПолучитьШиринуКолнкиЭксель(ПараметрШиринаВПикселях)
   
   Если ПараметрШиринаВПикселях > 9 Тогда 
      ШиринаВСимволах = (ПараметрШиринаВПикселях/0.75-5)/7;
   Иначе
      ШиринаВСимволах = ПараметрШиринаВПикселях/9;
   КонецЕсли;

   Возврат ШиринаВСимволах;
   
КонецФункции

Лист.Columns("A").ColumnWidth = ПолучитьШиринуКолнкиЭксель(РазмерШиринаВПикселях);
DevОбновление справочника Идентификаторы Объектов Метаданных#12 09.04.16 15:46
Раньше я как помню в справочнике идентификаторов была кнопка "Обновить", проблем с этим вообще не возникало, зачем убрали не понятно(