Рабочий вариант Android ListFragment
Android ListFragment Populated by RoboSpice | Christopher Biscardi: "Android ListFragment"
'via Blog this'
Tuesday, August 25, 2015
Wednesday, August 19, 2015
Доработка прав доступа в УТ11
Постоянно донимали пользователи со своими правами и разрешениями. В связи с этим пришлось доработать УТ11 на ускорение ввода разрешений или блокировок.
Вот и сделал себе "кайф", а пользователям радость.
Повозился пока нашел удобный вариант получения из ПВХ (Планов видов характеристик) необходимый мне объект и как итог его форму выбора
И добавил следующий код
В общем пока все работает.
Вот и сделал себе "кайф", а пользователям радость.
Повозился пока нашел удобный вариант получения из ПВХ (Планов видов характеристик) необходимый мне объект и как итог его форму выбора
Метаданные.НайтиПоТипу(ТекущийВидДоступа.ТипЗначения.Типы()[0]).ОсновнаяФормаДляВыбора.ПолноеИмя()
И добавил следующий код
&НаКлиенте Процедура КомандаПодбор(Команда) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимВыбора", Истина); ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Ложь); ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ОткрытьФорму(ВернутьТекущуюФормуВЫбора(),ПараметрыФормы,Элементы.ЗначенияДоступа); //Метаданные.НайтиПоТипу(ТекущийВидДоступа.ТипЗначения.Типы()[0]).ПолноеИмя() //Если Метаданные.Справочники КонецПроцедуры Функция ВернутьТекущуюФормуВЫбора() Возврат Метаданные.НайтиПоТипу(ТекущийВидДоступа.ТипЗначения.Типы()[0]).ОсновнаяФормаДляВыбора.ПолноеИмя(); КонецФункции &НаКлиенте Процедура ЗначениеДоступаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если ВыбранноеЗначение = Тип("СправочникСсылка.Пользователи") ИЛИ ВыбранноеЗначение = Тип("СправочникСсылка.ГруппыПользователей") Тогда СтандартнаяОбработка = Ложь; НачальноеЗначение = Элементы.ЗначенияДоступа.ТекущиеДанные.ЗначениеДоступа; ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", Новый Структура("ВыборГруппПользователей, ТекущаяСтрока", Истина, НачальноеЗначение), Элемент); ИначеЕсли ВыбранноеЗначение = Тип("СправочникСсылка.ВнешниеПользователи") ИЛИ ВыбранноеЗначение = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда СтандартнаяОбработка = Ложь; НачальноеЗначение = Элементы.ЗначенияДоступа.ТекущиеДанные.ЗначениеДоступа; ОткрытьФорму("Справочник.ВнешниеПользователи.ФормаВыбора", Новый Структура("ВыборГруппВнешнихПользователей, ТекущаяСтрока", Истина, НачальноеЗначение), Элемент); КонецЕсли; тМасс = Новый Массив; Если ТипЗнч(ВыбранноеЗначение) = Тип("Массив") тогда тМасс.Добавить(ВыбранноеЗначение); Иначе тМасс = ВыбранноеЗначение; КонецЕсли; Если ТипЗнч(ВыбранноеЗначение) = Тип("Массив") тогда Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл Если Объект.ЗначенияДоступа.НайтиСтроки(Новый Структура("ЗначениеДоступа",ВыбранныйЭлемент)).Количество() = 0 Тогда НоваяСтрока = Объект.ЗначенияДоступа.Добавить(); НоваяСтрока.ЗначениеДоступа = ВыбранныйЭлемент; НоваяСтрока.ВидДоступа = ТекущийВидДоступа; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры
В общем пока все работает.
Thursday, August 6, 2015
Перенос остатков на склад после включения в бухгалтерии "Ввести складской учет"
В общем тривиальная задача, есть 1С Бухгалтерия 8.2 необходимо перебросить остатки на счетах после включения "Ввести складской учет".
В нете решения не нашел, делаю свое. Форма с 3 полями "На дату", "Организация", "На склад".
Задача тривиальная, но вот заставило задумать по работе с установкой субконто и работа с партиями.
В нете решения не нашел, делаю свое. Форма с 3 полями "На дату", "Организация", "На склад".
Задача тривиальная, но вот заставило задумать по работе с установкой субконто и работа с партиями.
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто3, | ХозрасчетныйОстатки.Организация, | ХозрасчетныйОстатки.Валюта, | ХозрасчетныйОстатки.НалоговоеНазначение, | ХозрасчетныйОстатки.КоличествоОстаток КАК Количество, | ХозрасчетныйОстатки.СуммаОстаток КАК Сумма, | ХозрасчетныйОстатки.ВалютнаяСуммаОстаток КАК ВалютнаяСумма, | ХозрасчетныйОстатки.СуммаНУОстаток КАК СуммаНУ |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &НаДату, | , | , | Организация = &Организация | И (ТИПЗНАЧЕНИЯ(Субконто1) = ТИП(Справочник.Склады) | ИЛИ ТИПЗНАЧЕНИЯ(Субконто2) = ТИП(Справочник.Склады) | ИЛИ ТИПЗНАЧЕНИЯ(Субконто3) = ТИП(Справочник.Склады))) КАК ХозрасчетныйОстатки"; Запрос.УстановитьПараметр("НаДату",НачалоДня(НаДату)); Запрос.УстановитьПараметр("Организация",Организация); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Операция = Документы.ОперацияБух.СоздатьДокумент(); Операция.УстановитьНовыйНомер(); Операция.Дата = НачалоДня(НаДату)-1; Операция.Организация = Организация; Операция.Содержание = "Корректировка остатков бух"; Операция.Записать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоваяЗапись = Операция.Движения.Хозрасчетный.Добавить(); НоваяЗапись.Активность = Истина; НоваяЗапись.Регистратор = Операция.Ссылка; НоваяЗапись.ВалютаДт = ВыборкаДетальныеЗаписи.Валюта; НоваяЗапись.ВалютаКт = ВыборкаДетальныеЗаписи.Валюта; НоваяЗапись.ВалютнаяСуммаДт = ВыборкаДетальныеЗаписи.ВалютнаяСумма; НоваяЗапись.ВалютнаяСуммаКт = ВыборкаДетальныеЗаписи.ВалютнаяСумма; НоваяЗапись.КоличествоДт = ВыборкаДетальныеЗаписи.Количество; НоваяЗапись.КоличествоКт = ВыборкаДетальныеЗаписи.Количество; НоваяЗапись.НалоговоеНазначениеДт = ВыборкаДетальныеЗаписи.НалоговоеНазначение; НоваяЗапись.НалоговоеНазначениеКт = ВыборкаДетальныеЗаписи.НалоговоеНазначение; НоваяЗапись.Организация = Организация; НоваяЗапись.Сумма = ВыборкаДетальныеЗаписи.Сумма; НоваяЗапись.СуммаНУДт = ВыборкаДетальныеЗаписи.СуммаНУ; НоваяЗапись.СуммаНУКт = ВыборкаДетальныеЗаписи.СуммаНУ; НоваяЗапись.СчетДт = ВыборкаДетальныеЗаписи.Счет; НоваяЗапись.СчетКт = ВыборкаДетальныеЗаписи.Счет; УстановитьСубконтоКт(НоваяЗапись,ВыборкаДетальныеЗаписи.Субконто1); УстановитьСубконтоКт(НоваяЗапись,ВыборкаДетальныеЗаписи.Субконто2); УстановитьСубконтоКт(НоваяЗапись,ВыборкаДетальныеЗаписи.Субконто3); Если ТипЗнч(ВыборкаДетальныеЗаписи.Субконто1) = Тип("СправочникСсылка.Склады") тогда УстановитьСубконтоДт(НоваяЗапись,Склад); Иначе УстановитьСубконтоДт(НоваяЗапись,ВыборкаДетальныеЗаписи.Субконто1); КонецЕсли; Если ТипЗнч(ВыборкаДетальныеЗаписи.Субконто2) = Тип("СправочникСсылка.Склады") тогда УстановитьСубконтоДт(НоваяЗапись,Склад); Иначе УстановитьСубконтоДт(НоваяЗапись,ВыборкаДетальныеЗаписи.Субконто2); КонецЕсли; Если ТипЗнч(ВыборкаДетальныеЗаписи.Субконто3) = Тип("СправочникСсылка.Склады") тогда УстановитьСубконтоДт(НоваяЗапись,Склад); Иначе УстановитьСубконтоДт(НоваяЗапись,ВыборкаДетальныеЗаписи.Субконто3); КонецЕсли; КонецЦикла; //Операция.записать(); Операция.ПолучитьФорму("ФормаДокумента").Открыть(); КонецПроцедуры Функция УстановитьСубконтоДт(Проводка,ЗначениеСубконто) Для Каждого ВидСубконто Из Проводка.СчетДт.ВидыСубконто Цикл Если ВидСубконто.ВидСубконто.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто)) тогда Проводка.СубконтоДт[ВидСубконто.ВидСубконто.Ссылка] = ЗначениеСубконто; КонецЕсли; КонецЦикла; КонецФУнкции Функция УстановитьСубконтоКт(Проводка,ЗначениеСубконто) Для Каждого ВидСубконто Из Проводка.СчетКт.ВидыСубконто Цикл //Если Строка(ТипЗнч(ЗначениеСубконто)) = Строка(ВидСубконто.ВидСубконто.ТипЗначения) Тогда Если ВидСубконто.ВидСубконто.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто)) тогда Проводка.СубконтоКт[ВидСубконто.ВидСубконто.Ссылка] = ЗначениеСубконто; КонецЕсли; КонецЦикла; КонецФУнкции Процедура ПриОткрытии() //НаДату = НачалоМесяца(ТекущаяДата()); НаДату = Дата(2015,07,01); Склад = Справочники.Склады.НайтиПоНаименованию("Основной склад",Истина); КонецПроцедуры
Subscribe to:
Posts (Atom)