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

Хранилище

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

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




Свернуть

> Добро пожаловать на наш форум

Здравствуйте уважаемый посетитель. К сожалению вы не были распознаны форумом как зарегистрированный пользователь. Для полноценного использования возможностей нашего форума вам необходимо зарегистрироваться. Если вы уже зарегистрированы на форуме, то вам необходимо пройти авторизацию, используя Ваш логин и пароль.

Логин:   
Пароль:
 

Форум:

Новые темы (за 20 дней):

Последние сообщения:

Наши сервисы:

Дополнительно:

Новости для бухгалтера:

 
УТП 1.2 дополнительные свойства [раздел 1С Управление Торговым Предприятием 8]
Автор AleksWhite7 — 30.05.20, 15:01 — 1 комментариев
Здравствуйте!
Имеется:
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2. (1.2.45.2)
Платформа 1С:Предприятие 8.3 (8.3.15.1700)

Необходимо в документ "Заказ покупателя" добавить дополнительное поле без использования к программирования.

Использовал "План видов характеристик" -> "Свойство объектов" -> "Документ заказ покупателя" добавил свойство и ничего....
А вот со справочником "Номенклатуры" всё хорошо. Добавляю нужные мне свойства и могу работать.

Подскажите, что не так делаю???
Просмотров: 49, последний комментарий от AleksWhite7   
Перерасчёт зарплаты за прошлый период в ЗУП [раздел 1С Зарплата и Управление Персоналом 8]
Автор NadinniNR — 29.05.20, 16:00 — 0 комментариев
Добрый день.Подскажите пожалуйста как можно исправить следующую ситуацию.В марте сотрудник отсутствовал на работе (с 5 по 16 марта),данное отсутствие отразила документом Неявки в организациях.В конце месяца начислила и выплатила зарплату за март с учётом данных по неявке.В мае сотрудник принес больничный с 5 по 13 марта.Т.е. мне нужно ему доплатить за 1 день(16 марта),который не сторнирует больничный лист.Подскажите каким документом данное доначисление провести?Перерасчёт зарплаты не даёт корректный результат.
Просмотров: 36, оставить комментарий   
В каких справочниках находятся настройки обмена? [раздел Управление торговлей для Украины редакция 3 (Управление торговлей для России редакция 11)]
Автор vbi — 29.05.20, 13:30 — 0 комментариев
1С:Підприємство 8.3 (8.3.17.1386), BAS Управління торгівлею, редакція 3.2 (3.2.15.5)

В каких справочниках находятся настройки обмена данными с другими программами?
При переходе в настройки обмена открывается окно:

И никак не добавить сюда настройку. В каком справочнике находятся настройки? Что-то типа "НастройкиОбменаДанными" - не нашел(
Просмотров: 29, оставить комментарий   
упрпвление формой из другой формы [раздел Программирование в 1С Предприятие 7.7]
Автор 4andriy — 28.05.20, 21:11 — 6 комментариев
1c 7.7 Предприятие

Програмно создаю документ из журнала документов (процедура в журнале документов)
Происходит открытие документа (на нем есть кнопка Сохранить и закрыть)
Как сделать что-бы при открытии документа програмно документ сохранялся и закрывался и происходил переход в предидущий журнал?
Пробовал прописать в процедуре журнала документов в код создания:
Элемент.Записать();
Элемент.Закрыть();

но не помогло.
Просмотров: 124, последний комментарий от mut   
Не могу найти найти ошибку в модуле, не записывается строка [раздел Программирование в 1С Предприятие 8.3]
Автор sergik7907 — 28.05.20, 12:25 — 0 комментариев
1С:Предприятие 8.3 (8.3.10.2561)
Бухгалтерия для Беларуси, редакция 2.1. Локализация для Республики Беларусь: СООО "1С-Минск" (2.1.20.7)

Суть модуля такая, модуль перебирает виды услуг по контрагенту (у нас Водопотребление и Водоотведение) и считает индексацию. Если прогонять на отладчике, то высчитывает правильно обе услуги по отдельности. Но добавляет в сам документ только одну строчку Водоотведение.

Код
#Область ПрограммныйИнтерфейс
&НаСервере
Функция ПоискУслуги(Услуга)  Экспорт
    ТипУслуги="";
    Запросы=Новый Запрос;

    Запросы.Текст=
    "ВЫБРАТЬ
    |    ВидыУслуг.ВидУслуги
    |ИЗ
    |    РегистрСведений.ВидыУслуг КАК ВидыУслуг
    |ГДЕ
    |    ВидыУслуг.Номенклатура = &Номенклатура";
    Запросы.УстановитьПараметр("Номенклатура",Услуга);
    Рез=Запросы.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
        типУслуги=Рез.видуслуги;
    КонецЦикла;
    возврат типУслуги;
КонецФункции    

&НаСервере
Функция ПоискИнд(Услуга)  Экспорт
    ТипУслуги="";
    Запросы=Новый Запрос;

    Запросы.Текст=
    "ВЫБРАТЬ
    |    ВидыУслуг.УслугаПоИндексации
    |ИЗ
    |    РегистрСведений.ВидыУслуг КАК ВидыУслуг
    |ГДЕ
    |    ВидыУслуг.Номенклатура = &Номенклатура";
    Запросы.УстановитьПараметр("Номенклатура",Услуга);
    Рез=Запросы.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
        типУслуги=Рез.УслугаПоИндексации;
    КонецЦикла;
    возврат типУслуги;
КонецФункции    
    
    
&НаСервере


Процедура ПриПроведенииРеализацииУслугОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
    
    
    
    Если Источник.Услуги.количество()>0 Тогда    
        НаборЗаписей=Источник.Движения.Хозрасчетный.ЭтотОбъект;
  

        Для Каждого стр Из Источник.услуги Цикл
            ВидУслуги=ПоискУслуги(стр.номенклатура);
            Если сокрлп(видуслуги)<>"" Тогда
                Если ВидУслуги=Перечисления.ВидыУслуг.Вода Тогда
                    Сч=ПланыСчетов.Хозрасчетный.НайтиПоКоду("УСЛ.1").Ссылка;
                Иначе
                    Сч=ПланыСчетов.Хозрасчетный.НайтиПоКоду("УСЛ.2").Ссылка;
                КонецЕсли;
            
                
        Проводка = НаборЗаписей.Добавить();

        Проводка.Период      = источник.дата;
        Проводка.Организация = Справочники.Организации.НайтиПоКоду("00-000001");
    
        Проводка.Содержание  = "перенос НДС";

        Проводка.СчетДт = сч;
        Проводка.субконтодт.контрагенты=Источник.контрагент;//Пр;
        Проводка.субконтодт.Договоры=Источник.ДоговорКонтрагента;//Пр;
        Проводка.субконтодт.Номенклатура=стр.номенклатура;//Пр;

        Проводка.СчетКт = сч;    
        Проводка.субконтокт.контрагенты=Источник.контрагент;//Пр;
        Проводка.субконтокт.Договоры=Источник.ДоговорКонтрагента;//Пр;
        Проводка.субконтокт.Номенклатура=стр.номенклатура;//Пр;


        Проводка.Сумма = стр.сумма;
        Проводка.количестводт = стр.количество;
        Проводка.количествокт = стр.количество;
    КонецЕсли;
        КонецЦикла;  
    
    НаборЗаписей.Записать();
КонецЕсли;


КонецПроцедуры

&НаСервере
Функция ПолучитьсуммуОплаты(СДаты,ПоДату,контрагент,договорконтрагента) Экспорт
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ХозрасчетныйОборотыДтКт.СубконтоКт1,
    |    СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)) КАК сумма
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&сдаты, &подату, Период, , , , , ) КАК ХозрасчетныйОборотыДтКт
    |ГДЕ
    |    ХозрасчетныйОборотыДтКт.СчетКт В ИЕРАРХИИ(&Счет62)
    |    И НЕ(ХозрасчетныйОборотыДтКт.СубконтоДт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
    |                И ХозрасчетныйОборотыДтКт.СчетДт В ИЕРАРХИИ (&Счет62))
    |    И ХозрасчетныйОборотыДтКт.СубконтоКт1 = &СубконтоКт1
    //|    И ХозрасчетныйОборотыДтКт.СубконтоКт2 = &СубконтоКт2
    |
    |СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОборотыДтКт.СубконтоКт1";
    Запрос.УстановитьПараметр("счет62",Планысчетов.Хозрасчетный.НайтиПоКоду("62").Ссылка);
    Запрос.УстановитьПараметр("СубконтоКт1",контрагент);
//    Запрос.УстановитьПараметр("СубконтоКт2",договорконтрагента);
    Запрос.УстановитьПараметр("СДаты",сдаты);
    Запрос.УстановитьПараметр("ПоДату",подату);

    Рез=Запрос.Выполнить().Выбрать();
    сум=0;
    Пока Рез.Следующий() цикл
        сум=сум+рез.сумма;
    КонецЦикла;
    Возврат сум;
    

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

&НаСервере
Функция ПолучитьсуммуДО(СДаты,ПоДату,контрагент,договорконтрагента) Экспорт
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1,
    |    СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)) КАК сумма
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&СДаты, &ПоДату, Период, , , , , ) КАК ХозрасчетныйОборотыДтКт
    |ГДЕ
    |    ХозрасчетныйОборотыДтКт.СчетДт В ИЕРАРХИИ(&Счет62)
    |    И НЕ(ХозрасчетныйОборотыДтКт.СубконтоДт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
    |                И ХозрасчетныйОборотыДтКт.СчетКт В ИЕРАРХИИ (&Счет62))
    |    И ХозрасчетныйОборотыДтКт.СубконтоДт1 = &СубконтоКт1
    //|    И ХозрасчетныйОборотыДтКт.СубконтоДт2 = &СубконтоКт2
    |
    |СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1";

    Запрос.УстановитьПараметр("счет62",Планысчетов.Хозрасчетный.НайтиПоКоду("62").Ссылка);
    Запрос.УстановитьПараметр("СубконтоКт1",контрагент);
    //Запрос.УстановитьПараметр("СубконтоКт2",договорконтрагента);
    Запрос.УстановитьПараметр("СДаты",сдаты);
    Запрос.УстановитьПараметр("ПоДату",подату);

    Рез=Запрос.Выполнить().Выбрать();
    сум=0;
    Пока Рез.Следующий() цикл
        сум=сум+рез.сумма;
    КонецЦикла;
    Возврат сум;
    

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

&НаСервере
Функция ПолучитьсуммуДОУСЛ(СДаты,ПоДату,контрагент,договорконтрагента,Счета) Экспорт
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1,
    |    СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)) КАК сумма
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&СДаты, &ПоДату, Период, , , , , ) КАК ХозрасчетныйОборотыДтКт
    |ГДЕ
    |    ХозрасчетныйОборотыДтКт.СчетДт В ИЕРАРХИИ(&Счет62)
    |    И ХозрасчетныйОборотыДтКт.СубконтоДт1 = &СубконтоКт1
//    |    И ХозрасчетныйОборотыДтКт.СубконтоДт2 = &СубконтоКт2
    |
    |СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1";

    Запрос.УстановитьПараметр("счет62",счета);
    Запрос.УстановитьПараметр("СубконтоКт1",контрагент);
    //Запрос.УстановитьПараметр("СубконтоКт2",договорконтрагента);
    Запрос.УстановитьПараметр("СДаты",сдаты);
    Запрос.УстановитьПараметр("ПоДату",подату);

    Рез=Запрос.Выполнить().Выбрать();
    сум=0;
    Пока Рез.Следующий() цикл
        сум=сум+рез.сумма;
    КонецЦикла;
    Возврат сум;
    

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

&НаСервере
Процедура Расчетсумм(СуммаУслуги20,СуммаУслуги10,СуммаУслуги0,СДаты,ПоДату,контрагент,договорконтрагента) Экспорт  
    
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1,
    |    СУММА(ВЫБОР
    |            КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка20
    |                ТОГДА ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)
    |            ИНАЧЕ 0
    |        КОНЕЦ) КАК сумма20,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка10
    |            ТОГДА ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Сумма10,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка20
    |                ИЛИ ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка10
    |            ТОГДА 0
    |        ИНАЧЕ ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)
    |    КОНЕЦ КАК сумма0
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&СДаты, &ПоДату, Период, , , , , ) КАК ХозрасчетныйОборотыДтКт
    |ГДЕ
    |    ХозрасчетныйОборотыДтКт.СчетДт В ИЕРАРХИИ(&Счет62)
    |    И ХозрасчетныйОборотыДтКт.СубконтоДт1 = &СубконтоКт1
//    |    И ХозрасчетныйОборотыДтКт.СубконтоДт2 = &СубконтоКт2
    |
    |СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка10
    |            ТОГДА ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)
    |        ИНАЧЕ 0
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка20
    |                ИЛИ ХозрасчетныйОборотыДтКт.СубконтоДт3.СтавкаНДС = &Ставка10
    |            ТОГДА 0
    |        ИНАЧЕ ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)
    |    КОНЕЦ";

    Запрос.УстановитьПараметр("счет62",Планысчетов.Хозрасчетный.НайтиПоКоду("УСЛ").Ссылка);
    Запрос.УстановитьПараметр("ставка20",перечисления.СтавкиНДС.НДС20);
    Запрос.УстановитьПараметр("ставка10",перечисления.СтавкиНДС.НДС10);
    
    Запрос.УстановитьПараметр("СубконтоКт1",контрагент);
//    Запрос.УстановитьПараметр("СубконтоКт2",договорконтрагента);
    Запрос.УстановитьПараметр("СДаты",сдаты);
    Запрос.УстановитьПараметр("ПоДату",подату);

    Рез=Запрос.Выполнить().Выбрать();
    
    Пока Рез.Следующий() цикл
        СуммаУслуги20=СуммаУслуги20+рез.сумма20;
        СуммаУслуги10=суммауслуги10+рез.сумма10;
        СуммаУслуги0=суммауслуги0+рез.сумма0;

    КонецЦикла;

КонецПроцедуры


&НаСервере
Функция ПоискЗадолженности(СДаты,ПоДату,контрагент,договорконтрагента) Экспорт
    //Ит62.СНД()-Ит62.СНК()+Ит62.ДО();
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокДт, 0) - ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокКт, 0) КАК сумма
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки
    |ГДЕ
    |    ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет62)
    |    И ХозрасчетныйОстатки.Субконто1 = &Субконто1
    |    И ХозрасчетныйОстатки.Субконто2 = &Субконто2";
    Запрос.УстановитьПараметр("счет62",Планысчетов.Хозрасчетный.НайтиПоКоду("62").Ссылка);
    Запрос.УстановитьПараметр("Субконто1",контрагент);
    Запрос.УстановитьПараметр("Субконто2",договорконтрагента);  
    Запрос.УстановитьПараметр("Период",сдаты-1);
    Рез=Запрос.Выполнить().Выбрать();
    сум=0;//ПолучитьсуммуДО(СДаты,ПоДату,контрагент,договорконтрагента);
    Пока Рез.Следующий() цикл
        сум=сум+рез.сумма;
    КонецЦикла;
    Возврат сум;
    

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

&НаСервере
Функция ПолучитьКоф(ВыбДата,Тов,контрагент,организация)
    Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
    |    КурсыВалютСрезПоследних.Услуга,
    |    КурсыВалютСрезПоследних.КоэффициентБ,
    |    КурсыВалютСрезПоследних.Коэффициент
    |ИЗ
    |    РегистрСведений.КоэффициентыИндексации.СрезПоследних(&ВыбДата, Услуга = &Услуга) КАК КурсыВалютСрезПоследних";
    
    Запрос.УстановитьПараметр("ВыбДата", КонецДня(ВыбДата));
    Запрос.УстановитьПараметр("Услуга", ПоискУслуги(Тов));

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
   Если Контрагент.Бюджет=Истина тогда
        возврат  выборка.КоэффициентБ;
    Иначе
        возврат  выборка.Коэффициент;
        
    конецесли;

КонецЦикла;
    КонецФункции

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

    Тз.Колонки.Добавить("СчетДоходов");
    Тз.Колонки.Добавить("Субконто");
    Тз.Колонки.Добавить("СчетУчетаНДСПоРеализации");
    Тз.Колонки.Добавить("СчетРасходов");    
    Тз.Колонки.Добавить("НоменклатураИнд");
    Тз.Колонки.Добавить("ДатаИндексации");
    
    Для Каждого стр из ДокТ.услуги Цикл
        Если лев(сокрлп(стр.содержание),11)<>"Индексация:"  Тогда
            НовСтрока=ТЗ.Добавить();
            новстрока.номенклатура=стр.номенклатура;
            Новстрока.содержание=стр.содержание;
            Новстрока.количество=стр.количество;
            Новстрока.цена=стр.цена;
            Новстрока.сумма=стр.сумма;
        //    Новстрока.Всего=стр.Всего;
    
            Новстрока.ставкандс=стр.ставкандс;
            Новстрока.суммандс=стр.суммандс;
            Новстрока.счетдоходов=стр.счетдоходов;
            Новстрока.субконто=стр.субконто;
            Новстрока.СчетУчетаНДСПоРеализации=стр.СчетУчетаНДСПоРеализации;
            Новстрока.счетрасходов=стр.счетрасходов;
        КонецЕсли;
    КонецЦикла;    
    
    ДатаИндексацииТ=началомесяца(ДокТ.дата)-1;
    ДатаИндексации=ДатаИндексацииТ;
    
    ДатаРасчетов=конецмесяца(ДокТ.дата);              
    
    //////всего оплата  
    //Ит62 = СоздатьОбъект("БухгалтерскиеИтоги");
    //Ит62.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
    //Если Константа.УчитыватьДоговора=Перечисление.Булево.Да Тогда
    //    Ит62.ИспользоватьСубконто(ВидыСубконто.Договоры,Договор,2);      
    //КонецЕсли;                                        
    ОплатаТек=0;
    //Ит62.ВыполнитьЗапрос(,,,3,,"С");     
    ОплатаТек=ПолучитьсуммуОплаты(НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента);//СчетПоКоду("62")//Ит62.КО();
    
    ///сумма задолженности на начало месяца
    //Ит62 = СоздатьОбъект("БухгалтерскиеИтоги");
    //Ит62.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);  
    //Если Константа.УчитыватьДоговора=Перечисление.Булево.Да Тогда
    //    Ит62.ИспользоватьСубконто(ВидыСубконто.Договоры,Договор,2);
    //КонецЕсли;    
    
    
    //////поиск движений за месяц
    /////
    
    
    //Ит62.ВыполнитьЗапрос(НачМесяца(ДатаИндексацииТ),КонМесяца(ДатаИндексацииТ),"62.1");  
    СуммаЗадолженностиНаНачалоМесяца=ПоискЗадолженности(НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента)
    +ПолучитьсуммуДО(НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента);
    //Ит62.СНД()-Ит62.СНК()+Ит62.ДО();  
    ДвижениеЗаМесяц=0; ЗаМесяцТ=0;      
    Если ОплатаТек>0 Тогда
        ДвижениеЗаМесяц=ПолучитьсуммуДО(НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента);//Ит62.ДО();
    КонецЕсли;      
    //    Если (Ит62.СНД()-Ит62.СНК())> ОплатаТек Тогда
    СуммаЗадолженностиНаНачалоМесяца=ПоискЗадолженности(НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента);
    //Ит62.СНД()-Ит62.СНК();
    Если (СуммаЗадолженностиНаНачалоМесяца=0) и (ДвижениеЗаМесяц<>0) Тогда
        ЗаМесяцТ=ДвижениеЗаМесяц;
        
    КонецЕсли;
    ДвижениеЗаМесяц=0;  
    Для Каждого стр из тз цикл
        Если сокрлп(стр.датаИндексации)<>"" Тогда
            Если КонецМесяца(ДатаИндексацииТ)=конецмесяца(Дата(КонецМесяца(стр.датаИндексации)+1))      Тогда
                Если  СокрЛП(стр.номенклатураинд)<>""    Тогда
                    СуммаЗадолженностиНаНачалоМесяца=СуммаЗадолженностиНаНачалоМесяца+стр.сумма+стр.суммандс;
                КонецЕсли;    
            КонецЕсли;    
        КонецЕсли;
    КонецЦикла;
    
    
    
    Если СуммаЗадолженностиНаНачалоМесяца<0 Тогда
        СуммаЗадолженностиНаНачалоМесяца=0;
    КонецЕсли;            
    
    
    
    СуммаУслуги=0;
    //ИтУСЛ = СоздатьОбъект("БухгалтерскиеИтоги");
    //ИтУСЛ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
    //Если Константа.УчитыватьДоговора=Перечисление.Булево.Да Тогда
    //    ИтУСЛ.ИспользоватьСубконто(ВидыСубконто.Договоры,Договор,2);  
    //КонецЕсли;              
    //
    //ИтУСЛ.ВыполнитьЗапрос(НачМесяца(ДатаИндексацииТ),КонМесяца(ДатаИндексацииТ),"УСЛ",,,1,,"СК");  
    СуммаУслугиВсего=0;                    
    СуммаУслугиВсего=ПолучитьсуммуДОУСЛ(НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента,Планысчетов.Хозрасчетный.НайтиПоКоду("УСЛ").Ссылка);//ИтУСЛ.ДО("С");  
    СуммаУслуги20=0;
    СуммаУслуги10=0;
    СуммаУслуги0=0;
    Для Каждого стр из тз цикл
        Если сокрлп(стр.датаИндексации)<>"" Тогда
            
            Если началоМесяца(ДатаИндексацииТ)=дата(КонецМесяца(стр.датаИндексации)+1)     Тогда
                Если  СокрЛП(стр.номенклатураинд)<>""    Тогда
                    суммаУслугиВсего=СуммаУслугиВсего+стр.сумма+стр.суммандс;
                КонецЕсли;    
            КонецЕсли;      
        КонецЕсли;
        
    КонецЦикла;
    
    //ВыбратьСтроки();
    //Пока ПолучитьСтроку()=1  Цикл
    //    Если Дата(КонМесяца(МесяцИндексации)+1)=НачМесяца(ДатаИндексацииТ) Тогда  
    //        Если  СокрЛП(ИндексируемаяУслуга)<>""    Тогда
    //               СуммаУслугиВсего=СуммаУслугиВсего+Всего;
    //           
    //           КонецЕсли;    
    //    КонецЕсли;
    //КонецЦикла;
    //
    Сч3=2;
    //ИтУСЛ = СоздатьОбъект("БухгалтерскиеИтоги");
    //ИтУСЛ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
    //Если Константа.УчитыватьДоговора=Перечисление.Булево.Да Тогда
    //    ИтУСЛ.ИспользоватьСубконто(ВидыСубконто.Договоры,Договор,2);  Сч3=3;
    //КонецЕсли;        
    //ИтУСЛ.ИспользоватьСубконто(ВидыСубконто.Номенклатура,,1);
    //ИтУсл.ВключатьСубсчета(1,0);  
    //ИтУСЛ.ВыполнитьЗапрос(НачМесяца(ДатаИндексацииТ),КонМесяца(ДатаИндексацииТ),"УСЛ",,,1,,"СК");  
    //
    СуммаУслуги20=0;
    СуммаУслуги10=0;
    СуммаУслуги0=0;    
    РасчетСумм(СуммаУслуги20,СуммаУслуги10,СуммаУслуги0,НачалоМесяца(ДатаИндексацииТ),КонецМесяца(ДатаИндексацииТ),ДокТ.контрагент,ДокТ.договорконтрагента);
    
    //ИтУсл.ВыбратьСубконто(Сч3);
    //Пока ИтУсл.ПолучитьСубконто(Сч3)=1  Цикл    
    //    Если СокрЛП(ИтУсл.Субконто(Сч3))<>""      Тогда
    //        Если ИтУсл.Субконто(Сч3).СтавкаНДС.Получить(ДатаИндексации).Ставка=20 Тогда
    //            СуммаУслуги20=СуммаУслуги20+ИтУсл.ДО();
    //        ИначеЕсли ИтУсл.Субконто(Сч3).СтавкаНДС.Получить(ДатаИндексации).Ставка=10 Тогда
    //            СуммаУслуги10=СуммаУслуги10+ИтУсл.ДО();
    //        Иначе
    //            СуммаУслуги0=СуммаУслуги0+ИтУсл.ДО();
    //        КонецЕсли;
    //    КонецЕсли;
    //КонецЦикла;
    
    Процент20=1;Процент10=0;Процент0=0;
    Если  (СуммаУслуги20+СуммаУслуги10+СуммаУслуги0)<>0   Тогда
        Процент20=Окр(СуммаУслуги20/(СуммаУслуги20+СуммаУслуги10+СуммаУслуги0),3,1);
        Процент0=Окр(СуммаУслуги0/(СуммаУслуги20+СуммаУслуги10+СуммаУслуги0),3,1);
        Процент10=Окр(СуммаУслуги10/(СуммаУслуги20+СуммаУслуги10+СуммаУслуги0),3,1);
    КонецЕсли;
    
    Если (СуммаУслуги10+СуммаУслуги0)=0      Тогда  
        СуммаЗадолженностиНаНачалоМесяца=Окр((СуммаЗадолженностиНаНачалоМесяца)/120*100,2,1);
        ДвижениеЗаМесяц=Окр(ДвижениеЗаМесяц/120*100,2,1);
        ЗаМесяцТ=Окр(ЗаМесяцТ/120*100,2,1);
        
    ИначеЕсли (СуммаУслуги20+СуммаУслуги0)=0  Тогда
        СуммаЗадолженностиНаНачалоМесяца=Окр((СуммаЗадолженностиНаНачалоМесяца)/110*100,2,1);
        ДвижениеЗаМесяц=Окр(ДвижениеЗаМесяц/110*100,2,1);    
        ЗаМесяцТ=Окр(ЗаМесяцТ/110*100,2,1);
        
        
    ИначеЕсли (СуммаУслуги20<>0) или (СуммаУслуги10<>0) или (СуммаУслуги0<>0)  Тогда
        Процент20=Окр(СуммаУслуги20/(СуммаУслуги20+СуммаУслуги10+СуммаУслуги0),3,1);
        Процент0=Окр(СуммаУслуги0/(СуммаУслуги20+СуммаУслуги10+СуммаУслуги0),3,1);
        Процент10=Окр(СуммаУслуги10/(СуммаУслуги20+СуммаУслуги10+СуммаУслуги0),3,1);
        СуммаЗадолженностиНаНачалоМесяца=Окр((СуммаЗадолженностиНаНачалоМесяца*Процент20)/120*100,2,1)+
        Окр((СуммаЗадолженностиНаНачалоМесяца*Процент10)/110*100,2,1)+Окр((СуммаЗадолженностиНаНачалоМесяца*Процент0)/100*100,2,1);  
        
        ДвижениеЗаМесяц=Окр((ДвижениеЗаМесяц*Процент20)/120*100,2,1)+
        Окр((ДвижениеЗаМесяц*Процент10)/110*100,2,1)+Окр((ДвижениеЗаМесяц*Процент0)/100*100,2,1);
        ЗаМесяцТ=Окр((ЗаМесяцТ*Процент20)/120*100,2,1)+
        Окр((ЗаМесяцТ*Процент10)/110*100,2,1)+Окр((ЗаМесяцТ*Процент0)/100*100,2,1);
    КонецЕсли;
    
    
    
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)) КАК сумма,
    |    ХозрасчетныйОборотыДтКт.СубконтоДт3,
    |    ХозрасчетныйОборотыДтКт.СчетДт,
    |    СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.КоличествоОборотДт, 0)) КАК количество,
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1
    //|    ХозрасчетныйОборотыДтКт.СубконтоДт2
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&СДаты, &ПоДату, Период, , , , , ) КАК ХозрасчетныйОборотыДтКт
    |ГДЕ
    |    ХозрасчетныйОборотыДтКт.СчетДт В ИЕРАРХИИ(&Счет62)
    |    И ХозрасчетныйОборотыДтКт.СубконтоДт1 = &СубконтоКт1
//    |    И ХозрасчетныйОборотыДтКт.СубконтоДт2 = &СубконтоКт2
    |
    |СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОборотыДтКт.СубконтоДт3,
    |    ХозрасчетныйОборотыДтКт.СчетДт,
    |    ХозрасчетныйОборотыДтКт.СубконтоДт1";
    
    Запрос.УстановитьПараметр("счет62",Планысчетов.Хозрасчетный.НайтиПоКоду("УСЛ").Ссылка);
    Запрос.УстановитьПараметр("СубконтоКт1",докт.контрагент);
    //Запрос.УстановитьПараметр("СубконтоКт2",докт.договорконтрагента);
    Запрос.УстановитьПараметр("СДаты",НачалоМесяца(ДатаИндексацииТ));
    Запрос.УстановитьПараметр("ПоДату",КонецМесяца(ДатаИндексацииТ));  
    
    Рез=Запрос.Выполнить().Выбрать();
    сум=0;
    Пока Рез.Следующий() цикл
        
        //
        //ИтУсл.ВыбратьСчета();
        //Пока ИтУсл.ПолучитьСчет()=1  Цикл
        //    Если ИтУсл.счет.этогруппа()=0       Тогда
        //        ИтУсл.ВыбратьСубконто(Сч3);
        //        Пока ИтУсл.ПолучитьСубконто(Сч3)=1  Цикл
        //            Если ИтУсл.Субконто(Сч3).ВидНоменклатуры=Константа.УслугаПоВоде.ВидНоменклатуры Тогда    
        //                УслугаТ=Константа.УслугаПоВодеИнд;                
        //            Иначе
        //                УслугаТ=Константа.УслугаПоКанализацииИнд;  
        //            КонецЕсли;        
        ЗаМесяц=0;
        УслугаТ_=Рез.СубконтоДт3;//ИтУсл.Субконто(Сч3);
        СуммаИндексации=0;  
        Примечание="";    
        СуммаУслуги=0;
        СуммаУслуги=рез.сумма;//ИтУСЛ.ДО("С");  
        КоличествоУслуги_=рез.количество;  
        КоличествоУслуги= 0;
        Если ОплатаТек>0 Тогда  
            Если ДвижениеЗаМесяц<>0 Тогда
                КоличествоУслуги=рез.количество;//ИтУСЛ.ДО("К");
            КонецЕсли;        
        Иначе
            КоличествоУслуги=0;
        КонецЕсли;    
        Для Каждого стр из тз цикл
            Если сокрлп(стр.датаИндексации)<>"" Тогда
                
                Если началоМесяца(ДатаИндексацииТ)=дата(КонецМесяца(стр.датаИндексации)+1)     Тогда
                    Если  стр.номенклатураинд=УслугаТ_    Тогда
                        суммаУслугиВсего=СуммаУслугиВсего+стр.сумма+стр.суммандс;
                    КонецЕсли;    
                КонецЕсли;    
            КонецЕсли;
            
        КонецЦикла;
        
        //ВыбратьСтроки();
        //Пока ПолучитьСтроку()=1  Цикл
        //    Если Дата(КонМесяца(МесяцИндексации)+1)=НачМесяца(ДатаИндексацииТ) Тогда    
        //        Если   УслугаТ_=ИндексируемаяУслуга    Тогда
        //             СуммаУслуги=СуммаУслуги+Всего;
        //        КонецЕсли;
        //        
        //    КонецЕсли;
        //КонецЦикла;
        СуммаДолга=СуммаЗадолженностиНаНачалоМесяца;
        Если  СуммаУслугиВсего<>0 Тогда
            СуммаДолга=Окр((СуммаЗадолженностиНаНачалоМесяца-ДвижениеЗаМесяц)/СуммаУслугиВсего*СуммаУслуги,2,1);
            ЗаМесяц= Окр((ЗаМесяцТ)/СуммаУслугиВсего*СуммаУслуги,2,1);
        КонецЕсли;
        ЦенаТ=Ценообразование.ПолучитьЦенуНоменклатуры(УслугаТ_,
        докт.договорконтрагента.ТипЦен, Дата(НачалоМесяца(ДатаИндексацииТ)-1),
        константы.ВалютаРегламентированногоУчета.Получить().Ссылка, 1, 1);
        
        
        //ЦенаТ=глПолучитьЦену( "",УслугаТ_, Константа.ТипЦенДляВодыКНС, Дата(НачМесяца(ДатаИндексацииТ)-1),?(Договор.Выбран() = 0,"",Договор.ВалютаДоговора),Курс);
        ///Объем задолженности
        КубовБыло=КоличествоУслуги;
        Если  ЦенаТ<>0 Тогда
            КубовБыло=Окр(СуммаДолга/ЦенаТ,4,1)+КоличествоУслуги;
            
        КонецЕсли;    
        ВсегоКубов=КубовБыло;
        СуммаДолга=СуммаЗадолженностиНаНачалоМесяца;
        Если  СуммаУслугиВсего<>0 Тогда
            СуммаДолга=Окр((СуммаЗадолженностиНаНачалоМесяца)/СуммаУслугиВсего*СуммаУслуги,2,1);
        КонецЕсли;
        Если КоличествоУслуги<>0 Тогда  
            Если ВсегоКубов<>0 Тогда
                ЦенаТ=Окр(СуммаДолга/ВсегоКубов,2,1);
            КонецЕсли;    
        КонецЕсли;                              
        ЗаМесК=0;    
        Примечание=" индексации.Долг на нач.мес."+СокрЛП(СуммаЗадолженностиНаНачалоМесяца-ДвижениеЗаМесяц)+"за месяц:"+СокрЛП(ДвижениеЗаМесяц+ЗаМесяц)+" куб.мес:"+СокрЛП(КоличествоУслуги+ЗаМесК)+":"+СокрЛП(Примечание)+ " по услуге(Сумма):"+СокрЛП(СуммаДолга)+":цена на начало месяца:"+СокрЛП(ЦенаТ)+":Кубов(Сумма/Цена):"+
        СокрЛП(ВсегоКубов-КоличествоУслуги)+" всего куб:"+СокрЛП(КубовБыло);
        
        //Ит62 = СоздатьОбъект("БухгалтерскиеИтоги");
        //Ит62.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
        //Если Константа.УчитыватьДоговора=Перечисление.Булево.Да Тогда
        //    Ит62.ИспользоватьСубконто(ВидыСубконто.Договоры,Договор,2);      
        //КонецЕсли;    
        //Ит62.ВыполнитьЗапрос(НачМесяца(ДатаИндексацииТ),КонМесяца(ДатаИндексацииТ),СчетПоКоду("62"),,,3,"День","С");  
        ////////поиск движений за месяц
        
        
        
        ///
        Если (ЗаМесяц<>0) и (КоличествоУслуги_<>0) Тогда
            //    Ит62.ВыбратьПериоды();
            ОплатаТ="";
            ДатаН=конецдня(НачалоМесяца(ДатаИндексацииТ));
            ДатаК=КонецМесяца(ДатаИндексацииТ);
            Пока ДатаН<=ДатаК Цикл
                
                сум=0;
                Сум=ПолучитьсуммуДО(НачалоДня(ДатаН),КонецДня(ДатаН),докт.контрагент,докт.договорконтрагента);
                Если сум>0 Тогда
                    ЦенаТ=Ценообразование.ПолучитьЦенуНоменклатуры(УслугаТ_,
                    докт.договорконтрагента.ТипЦен, КонецДня(ДатаН),
                    константы.ВалютаРегламентированногоУчета.Получить().Ссылка, 1, 1);
                КонецЕсли;
                
                ДатаН=конецдня(КонецДня(ДатаН)+1);
                
            КонецЦикла;
            //Пока Ит62.ПолучитьПериод()=1 Цикл
            //    Если Ит62.ДО()<>0 Тогда          
            //        ЦенаТ=глПолучитьЦену( "",УслугаТ_, Константа.ТипЦенДляВодыКНС,Ит62.КонДата,?(Договор.Выбран() = 0,"",Договор.ВалютаДоговора),Курс);
            //    КонецЕсли;
            //КонецЦикла;    
            //    ЦенаТ=Окр(ЗаМесяц/ИтУСЛ.ДО("К"),0,1);
            ЗаМесК= КоличествоУслуги_;//ИтУСЛ.ДО("К");  
            Примечание=" индексации."+" куб.мес:"+СокрЛП(ЗаМесК)+";";
        КонецЕсли;     
        
        СуммаИндексации=0;
        ///проверяем оплату
        
        //    Ит62.ВыбратьПериоды();
        ОплатаТ="";
        ВсегоКубов=ВсегоКубов+ЗаМесК;
        ДатаН=конецдня(НачалоМесяца(ДатаИндексацииТ));
        ДатаК=КонецМесяца(ДатаИндексацииТ);
        Пока ДатаН<=ДатаК Цикл
             КофИнд=1;
            КофИнд=ПолучитьКоф(ДатаН,УслугаТ_,докт.Контрагент,докт.Организация);

            СуммаОплаты=0;
            СуммаОплаты=Получитьсуммуоплаты(НачалоДня(ДатаН),КонецДня(ДатаН),докт.контрагент,докт.договорконтрагента);
            Если СуммаОплаты<>0 Тогда
            СуммаОплатыТ=0;
            ЦенаТОпл=Ценообразование.ПолучитьЦенуНоменклатуры(УслугаТ_,
            докт.договорконтрагента.ТипЦен, КонецДня(ДатаН),
            константы.ВалютаРегламентированногоУчета.Получить().Ссылка, 1, 1);
            Если  СуммаУслугиВсего<>0 Тогда
                СуммаОплатыТ=Окр(СуммаОплаты/СуммаУслугиВсего*СуммаУслуги/100*100,2,1);
            КонецЕсли;          
            СуммаОплатыТ=Окр((СуммаОплатыТ*Процент20)/120*100,2,1)+
            Окр((СуммаОплатыТ*Процент10)/110*100,0,1)+Окр((СуммаОплатыТ*Процент0)/100*100,2,1);
            КубовБылоОпл=0;
            Если  ЦенаТОпл<>0 Тогда
                КубовБылоОпл=Окр(СуммаОплатыТ/ЦенаТ,4,1);
            КонецЕсли;    
            Если ВсегоКубов<КубовБылоОпл Тогда
                КубовБылоОпл=ВсегоКубов;
                Всегокубов=0;
            Иначе            
                ВсегоКубов=ВсегоКубов-КубовБылоОпл;  
            КонецЕсли;
            
            
            СуммаИндексацииТ=Окр(СуммаОплатыТ*КофИнд,2)-СуммаОплатыТ;;
            СуммаИндексации=СуммаИндексации+СуммаИндексацииТ;    
            Примечание=СокрЛП(Примечание)+ " Оплата:"+СокрЛП(СуммаОплаты)+" :"+СокрЛП(формат(датан,"ДФ=dd.MM.yy")+":Оплата услуги:"+СокрЛП(СуммаОплатыТ)+":кубов"+СокрЛП(КубовБылоОпл)+":цена:"+СокрЛП(ЦенаТОпл)+":Сумма индекс.:"+
            СокрЛП(СуммаИндексацииТ));
            
            
            КонецЕсли;
ДатаН=конецдня(КонецДня(ДатаН)+1);

        КонецЦикла;
                КонецЦикла;

        ///осталось кубов
        ////    Если Константа.ИндексироватьОстаток=Перечисление.Булево.Да Тогда
        //////////Если сокрлп(всегокубов)="" Тогда
        //////////    всегокубов=0;
        //////////КонецЕсли;
        //////////Если Всегокубов>0 Тогда
        //////////    ЦенаТП=Ценообразование.ПолучитьЦенуНоменклатуры(УслугаТ_,
        //////////    докт.договорконтрагента.ТипЦен, КонецДня(Датаиндексации),
        //////////    константы.ВалютаРегламентированногоУчета.Получить().Ссылка, 1, 1);        
        //////////    //    ЦенаТП=глПолучитьЦену( "",УслугаТ_, Константа.ТипЦенДляВодыКНС,КонМесяца(Датаиндексации),?(Договор.Выбран() = 0,"",Договор.ВалютаДоговора),Курс);         
        //////////    СуммаИндексацииТ=Окр(Всегокубов*(ЦенаТП-ЦенаТ),2,1);
        //////////    Примечание=СокрЛП(Примечание)+ " осталось кубов:"+СокрЛП(ВсегоКубов)+":цена на дату счета:"+СокрЛП(ЦенаТП)+" (Цена-Цена на нач.) ("+СокрЛП(ЦенаТП)+"-"+СокрЛП(ЦенаТ)+") :Сумма:"+
        //////////    СокрЛП(СуммаИндексацииТ);
        //////////    СуммаИндексации=СуммаИндексации+СуммаИндексацииТ;  
        //////////КонецЕсли;                
        //    КонецЕсли;
        Если СуммаИндексации<>0 Тогда
            новстрока=ТЗ.Добавить();
            
            
            
            Сумма=СуммаИндексации;
            Всего=СуммаИндексации;
            СтавкаНДСЧислом = 0;
            Попытка
                СтавкаНДС = УслугаТ_.ставкандс;
                СтавкаНДСЧислом = 0;
                Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
                    СтавкаНДСЧислом = 20;
                ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
                    СтавкаНДСЧислом = 10;
                ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
                    СтавкаНДСЧислом = 18;
                    //1С-Минск
                ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС909 Тогда
                    СтавкаНДСЧислом = 9.09;        
                ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС1525 Тогда
                    СтавкаНДСЧислом = 15.25;        
                ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС1667 Тогда
                    СтавкаНДСЧислом = 16.67;
                ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС25 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС25_125 Тогда
                    СтавкаНДСЧислом = 25;    
                    //1С-Минск
                КонецЕсли;    
            Исключение
                
            КонецПопытки;
            суммандс=окр(сумма/100*СтавкаНДСЧислом,2,1);
            
            //Индексация=Лев(СокрЛП(Примечание),99);  
            //Индексация1=Сред(СокрЛП(Примечание),100,99);
            //Индексация2=Сред(СокрЛП(Примечание),(99+99+1),99);      
            //Индексация3=Сред(СокрЛП(Примечание),(99+99+99+1),99);  
            //Индексация4=Сред(СокрЛП(Примечание),(99+99+99+99+1),99);    
            //Индексация5=СокрЛП(ИтУсл.Субконто(Сч3))+" за "+СокрЛП(ДатаИндексацииТ);  
            ИндексируемаяУслуга=УслугаТ_;  
            МесяцИндексации=ДатаИндексацииТ;  
            
            новстрока.номенклатура=Поискинд(УслугаТ_);
            Новстрока.содержание=сокрлп(примечание)+СокрЛП(УслугаТ_)+" за "+СокрЛП(ДатаИндексацииТ);
            Новстрока.количество=1;
            Новстрока.цена=Сумма;
            Новстрока.сумма=Сумма;
            Новстрока.ставкандс=УслугаТ_.ставкандс;
            Новстрока.суммандс=суммандс;
            //Новстрока.Всего=Сумма+суммандс;

            Новстрока.счетдоходов=планысчетов.Хозрасчетный.НайтиПоКоду("90.1.1").Ссылка;
            Новстрока.субконто=стр.субконто;
            Новстрока.СчетУчетаНДСПоРеализации=планысчетов.Хозрасчетный.НайтиПоКоду("90.2.1").Ссылка;
            Новстрока.счетрасходов=планысчетов.Хозрасчетный.НайтиПоКоду("90.4.1").Ссылка;
            новстрока.номенклатураинд=УслугаТ_;
            новстрока.ДатаИндексации=МесяцИндексации;
            
        КонецЕсли;    
        
        
    //КонецЕсли;
    
    //КонецЦикла;
    
    
    
КонецПроцедуры    


#КонецОбласти
Просмотров: 60, оставить комментарий   
Условия отбора во внешних обработках [раздел Программирование в 1С Предприятие 8.3]
Автор SemenYU — 27.05.20, 18:01 — 5 комментариев
Добрый день, коллеги!
Зашёл немного в тупик, помогите пожалуйста.
Возможно ли в табличной части внешней обработки ставить условие отбора по Номенклатуре "В группе"?
Просмотров: 103, последний комментарий от denis84   
Пересчет по курсу в валютах [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор bizisoft — 27.05.20, 16:16 — 2 комментариев
Добрый день.
1С8,2 Альфа-Авто 4.1

Валюта управл. = USD
Валюта регл. = ГРН

Справочник валюты
USD
ГРН
ЕВРО
РУБ

Сейчас пересчет производится в цикле через вызов штатной функции.
Подскажите пожалуйста, как правильно выполнить пересчет значений по курсу в указанной(ых) валюте(ах) непосредственно в запросе.

Замечена такая закономерность, что пересчет между USD и ГРН производится "напрямую", а вот остальные валюты рассчитываются через ГРН.
Например чтобы получить цену в РУБ, цена в USD умножается на курс ГРН и делится на курс РУБ (2,55*28/0,5 = 142.8)

Делаю таким образом (в данном случае пересчитывается себестоимость)

ВЫБРАТЬ
    ПартииТоваровКомпанииОстатки.Номенклатура,
    ПартииТоваровКомпанииОстатки.СуммаУпрОстаток * КурсыВалютСрезПоследних.Курс/ПартииТоваровКомпанииОстатки.КоличествоОстаток КАК СуммаДол,
    0 КАК СуммаГрн,
    0 КАК СуммаЕвр,
    0 КАК СуммаРуб,
    ПартииТоваровКомпанииОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ПартииТоваровКомпании.Остатки КАК ПартииТоваровКомпанииОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
        ПО (КурсыВалютСрезПоследних.Валюта = &ВалютаДол)
ГДЕ
    ПартииТоваровКомпанииОстатки.Номенклатура = &Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПартииТоваровКомпанииОстатки.Номенклатура,
    0,
    ПартииТоваровКомпанииОстатки.СуммаУпрОстаток * КурсыВалютСрезПоследних.Курс/ПартииТоваровКомпанииОстатки.КоличествоОстаток,
    0,
    0,
    ПартииТоваровКомпанииОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ПартииТоваровКомпании.Остатки КАК ПартииТоваровКомпанииОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
        ПО (КурсыВалютСрезПоследних.Валюта = &ВалютаГрн)
ГДЕ
    ПартииТоваровКомпанииОстатки.Номенклатура = &Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПартииТоваровКомпанииОстатки.Номенклатура,
    0,
    0,
    ПартииТоваровКомпанииОстатки.СуммаУпрОстаток * КурсыВалютСрезПоследних.Курс/ПартииТоваровКомпанииОстатки.КоличествоОстаток,
    0,
    ПартииТоваровКомпанииОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ПартииТоваровКомпании.Остатки КАК ПартииТоваровКомпанииОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
        ПО (КурсыВалютСрезПоследних.Валюта = &ВалютаЕвро)
ГДЕ
    ПартииТоваровКомпанииОстатки.Номенклатура = &Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПартииТоваровКомпанииОстатки.Номенклатура,
    0,
    0,
    0,
    ПартииТоваровКомпанииОстатки.СуммаУпрОстаток * КурсыВалютСрезПоследних.Курс/ПартииТоваровКомпанииОстатки.КоличествоОстаток,
    ПартииТоваровКомпанииОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ПартииТоваровКомпании.Остатки КАК ПартииТоваровКомпанииОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
        ПО (КурсыВалютСрезПоследних.Валюта = &ВалютаРуб)
ГДЕ
    ПартииТоваровКомпанииОстатки.Номенклатура = &Номенклатура


Номенклатура                    СуммаДол        СуммаГрн        СуммаЕвр        СуммаРуб
Фильтр маслянный ( 26300-35505 )    76,174723            
Фильтр маслянный ( 26300-35505 )                2,720526        
Фильтр маслянный ( 26300-35505 )                            81,615775    
Фильтр маслянный ( 26300-35505 )                                        1,142621


При этом значения СуммаДол должна соответствовать 2,720526, а СуммаГрн - 76,174723 - ну тут наверное можно переподставить валюты в этих запросах.
СуммаЕвр - вроде нормально.

Но вот СуммаРуб - тут неверно считает, т.к. должно быть 181,368375.
В валютах у Руб курс выставлен 0,42 - это видимо связано с тем, что УпрВалюта = Доллар, а РеглВалюта = ГРН.
Думаю, что если бы Упр и Регл валюты были ГРН, то такой проблемы не возникло.

Подскажите пожалуйста, как можно этот момент обойти?

P.S. В данном примере все валюты я объединил в одном запросе, но на самом деле валюта будет одна. Она будет выбираться в ПолеВыбора и передаваться в запрос параметром.
Думаю с Евро и Грн не должно возникнуть проблем, но с Руб будут неверно считаться суммы.

Просмотров: 83, последний комментарий от bizisoft   
Необычное поведение платформы 8.3 при модификации конф-ции [раздел Программирование в 1С Предприятие 8.3]
Автор kserg2012 — 27.05.20, 14:39 — 4 комментариев
Добрый день

1С:Предприятие 8.3 (8.3.15.1778)

Конф-ция "УПП для Украины", редакция 1.2.6.7 существенно доработанная
Обычный формы.

Создаю в конф-ции новый регистр накопления (Остатки), добавляю ему в регистраторы существующий документ.
Конф-ция нормально записывается.

Далее создаю НОВЫЙ документ, и его добавляю вторым в список регистраторов в новый регистр.

При попытке записи конф-ции получаю след.ошибку

В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка SDBL:
Таблица AccumRgOpt не имеет нового поколения и не может быть модифицирована (pos=84)


Удаляю в новом регистре из списка регистраторов новый документ и конф-ция нормально сохраняется...

При попытке добавить вторым документом другой существующий документ - получаю такую же ошибку.

При попытке удалить из списка регистраторов 1-й документ(НОВЫЙ) и сделать первым документом любой существующий - получаю такую же ошибку.

Прошу подскажите, в чем может быть причина такого поведения системы?



Просмотров: 142, последний комментарий от denis84   
Как правильно сравнивать два строковых реквизита? 1с 7.7 конф 7.7.00 [раздел Программирование в 1С Предприятие 7.7]
Автор ZUBR — 27.05.20, 1:27 — 4 комментариев
Здравствуйте. Привожу кусок кода модуля документа АктПриема

Изм=0;
Мистер.ПочтовыйАдрес=Адрес;
Если  Мистер.ПочтовыйАдрес<>Адрес Тогда
                    Мистер.ПочтовыйАдрес =Адрес;
                    Изм=1;
                КонецЕсли;

И после этого оказывается, что Изм=1. Почему?

Поле ввода Адрес в документе заполнено вручную.
Мистер - это элемент справочника Контрагенты (через СоздатьОбъект)
Спасибо!
Просмотров: 102, последний комментарий от ZUBR   
Программно открыть форму и вывести сообщение [раздел Программирование в 1С Предприятие 8.3]
Автор Constantus — 26.05.20, 15:30 — 1 комментариев
Приветству, Форумчане!
1с8.3.12, самопис, УФ

Из одного документа открываю новую форму другого документа:

   Форма = ПолучитьФорму("Документ.Заказ.Форма.ФормаДокумента",,,Новый УникальныйИдентификатор());
    ДанныеФормы = Форма.Объект;
    ЗаполнитьДокументЗаказаНаСервере(ДанныеФормы);
    КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
    Форма.Открыть();
    Форма.Модифицированность = Истина;



Как можно в этой открытой форме вывести какое-нить сообщение из приведенного кода?
Просмотров: 99, последний комментарий от denis84   
Один запрос вместо нескольких с циклом [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор bizisoft — 26.05.20, 11:23 — 2 комментариев
1С 8.2 Альфа-Авто 4.1.

Для выбранного товара первым запросом получаю список Аналогов, а потом для них получаю продажи (квартал, 6 мес, год), но знаний хватило только на получение продаж отдельным запросом для каждого периода.

//Получаем список значений с набором всех Аналогов по выбранному Артикулу

        Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ГруппыАналогов.Артикул,
        |    ГруппыАналогов.Производитель,
        |    ГруппыАналогов.тАртикул
        |ИЗ
        |    РегистрСведений.ГруппыАналогов КАК ГруппыАналогов
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов1
        |        ПО ГруппыАналогов.ИдентификаторГруппы = ГруппыАналогов1.ИдентификаторГруппы
        |ГДЕ
        |    ГруппыАналогов1.Артикул = &Артикул";

    Запрос.УстановитьПараметр("Артикул", Товар);
    Результат = Запрос.Выполнить();
    Выб = Результат.Выбрать();
    СпЗн = Новый СписокЗначений;
    СпЗн.Очистить();    
    Пока Выб.Следующий() Цикл
        СпЗн.Добавить(Выб.Артикул,Выб.Артикул);
    КонецЦикла;

//Для полученного списка (Аналогов) получаем продажи (Квартал, 6 мес, Год)

        Для Счетчик = 1 По 3 Цикл
        Если       Счетчик = 1 Тогда    
             НачПериод = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-3));    // квартал
        ИначеЕсли Счетчик = 2 Тогда    
            НачПериод = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-6));    // пол года  
        ИначеЕсли Счетчик = 3 Тогда    
            НачПериод = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-12));// год
        КонецЕсли;        
        КонПериод = КонецДня(ТекущаяДата());

        Запрос = Новый Запрос;
        Запрос.Текст =     
            "ВЫБРАТЬ
            |    Продажи.Период,
            |    Продажи.Номенклатура,
            |    Продажи.Количество,
            |    Продажи.Номенклатура.Артикул КАК Артикул,
            |    Продажи.Номенклатура.тАртикул КАК тАртикул,
            |    Продажи.Номенклатура.Производитель КАК Производитель
            |ИЗ
            |    РегистрНакопления.Продажи КАК Продажи
            |ГДЕ
            |    Продажи.Период МЕЖДУ &НачПериод И &КонПериод
            |    И Продажи.Номенклатура.Артикул В(&СпЗнАртикул)";
        
        Запрос.УстановитьПараметр("КонПериод", КонПериод);
        Запрос.УстановитьПараметр("НачПериод", НачПериод);
        Запрос.УстановитьПараметр("СпЗнАртикул", СпЗн);  

        Результат = Запрос.Выполнить();  
        ТЗВыб = Результат.Выгрузить();
        Для Каждого стр Из ТЗВыб Цикл
            НСтр = ТЗРез.Добавить();        
            НСтр.Номенклатура = стр.Номенклатура;        
            НСтр.Артикул = стр.Артикул;
            НСтр.тАртикул = стр.тАртикул;
            НСтр.Производитель = стр.Производитель;
            Если       Счетчик = 1 Тогда    НСтр.ПродажаКвартал = стр.Количество;    
            ИначеЕсли Счетчик = 2 Тогда    НСтр.ПродажаПолгода = стр.Количество;
            ИначеЕсли Счетчик = 3 Тогда    НСтр.ПродажаГод = стр.Количество;
            КонецЕсли;                     
        КонецЦикла;  
    КонецЦикла;
    ТЗРез.Свернуть("тАртикул, Производитель","ПродажаКвартал, ПродажаПолгода, ПродажаГод");



Попробовал сделать так:
ВЫБРАТЬ
            |    Продажи.Номенклатура,
            |    Продажи.Номенклатура.Артикул КАК Артикул,
            |    Продажи.Номенклатура.тАртикул КАК тАртикул,
            |    Продажи.Номенклатура.Производитель КАК Производитель,
            |    Продажи.Количество КАК ПродажаКвартал,
            |    Продажи1.Количество КАК ПродажаПолгода,
            |    Продажи2.Количество КАК ПродажаГод
            |ИЗ
            |    РегистрНакопления.Продажи КАК Продажи1
            |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
            |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи2
            |            ПО Продажи2.Номенклатура = Продажи.Номенклатура
            |        ПО Продажи1.Номенклатура = Продажи.Номенклатура
            |ГДЕ
            |    Продажи.Период МЕЖДУ &НачПериодК И &КонПериод
            |    И Продажи.Номенклатура.Артикул В(&СпЗнАртикул)
            |    И Продажи1.Период МЕЖДУ &НачПериодПГ И &КонПериод
            |    И Продажи2.Период МЕЖДУ &НачПериодГ И &КонПериод


Но что-то мне подсказывает, что это не верно в корне.
Забил запрос в Запросник, но результата нет, да и запрос выполняется гораздо дольше чем если через цикл с запросами.


Подскажите пожалуйста, как правильно создать запрос, чтобы исключить цикл со вложенными запросами и как правильно обозначить параметры с разделением по периодам (квартал, 6 мес, год), чтобы вывести периоды были в столбцах
Номенклатура | Квартал | 6 мес | Год
Просмотров: 134, последний комментарий от bizisoft   
Реализация - Возврат [раздел Программирование в 1С Предприятие 8.3]
Автор Bon Jovi — 26.05.20, 9:28 — 5 комментариев
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы.
Добрый день. Подскажите пожалуйста, как можно реализация следующий функционал (саму логику): Мне нужно запросом получить количество документов реализации и возврата по позиции так, чтобы они шли друг за другом. То есть идёт документ РЕАЛИЗАЦИИ, за ним документ ВОЗВРАТА. Если же идёт документ РЕАЛИЗАЦИИ, за ним опять документ РЕАЛИЗАЦИИ, то это ошибочная ситуация.
Просмотров: 149, последний комментарий от Vofka   
Как программно выбрать и изменить один документ 1с 7.7 конф 7.7.00 [раздел Программирование в 1С Предприятие 7.7]
Автор ZUBR — 25.05.20, 22:33 — 2 комментариев
Здравствуйте! Возникла следующая задача.
У меня есть документ АктПриема. Он имеет реквизит СсылкаРасх со ссылкой на соответствующую ему РасходнуюНакладную. В РасходнойНакладной имеется реквизит Имя. Мне нужно программно изменить реквизит Имя в этой РасходнойНакладной из документа АктПриема. Для этого в АктеПриема я написал следующий код:

Процедура РН()
    Расх=СоздатьОбъект("Документ.РасходнаяНакладная");
        Расх.ПолучитьДокумент(СсылкаРасх);
        Расх.Имя="Гарик";
        Расх.Записать();
КонецПроцедуры

и повесил его на кнопку.
Синтакс говорит, что все ОК, а программа матерится на строку
Расх.ПолучитьДокумент(СсылкаРасх);

говорит, что слишком много параметров.
Подскажите, пожалуйста, где ошибка. Или в чем я неправ. Спасибо!
Просмотров: 96, последний комментарий от denis84   
Как программно закрыть таблицу печатной формы 1с 7.7 конф 7.7.00 [раздел Программирование в 1С Предприятие 7.7]
Автор ZUBR — 23.05.20, 0:20 — 3 комментариев
Здравствуйте!
Есть у меня таблица печатной формы. В модуле формы есть строка
Таб.Показать();

Потом мне нужно эту таблицу программно закрыть. Какой оператор это делает? не могу найти. Что нужно написать?
Таблица печатной формы.
Спасибо!
Просмотров: 160, последний комментарий от ZUBR   
Подключение к базе через OLE. [раздел Программирование в 1С Предприятие 7.7]
Автор Talkman — 22.05.20, 15:37 — 9 комментариев
Добрый день. Есть две базы 1С 7.7 ПУБ глубоко переработанные. 1С 7.7 0,27. Конфигурации идентичные. Сделал отчет анализа продаж с подключением из одной базы 1С в другую по OLE. Отчет работает, показывает нужные данные, но после завершения процедуры анализа сеанс 1С, созданный OLE подключением не закрывается. Итого 5-7 нажатий кнопки анализировать и в системе висит куча сеансов 1С. Вопрос: как правильно завершать подключение по OLE, чтобы оно закрывалось после завершения процедуры. Мой пример подключения по OLE (кусок кода).
Код
    Там = СоздатьОбъект("V77.Application"); 
    КаталогБазыОЛе  = СокрЛП(Константа.Туда);
    ПользовательОле = "***";
    ПарольОле       = "***";
    МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
    ЗапускБезЗаставки = 0;       // для появления заставки (например, чтобы наблюдать
    // процесс запуска базы OLE визуально) поставьте здесь "0"
    РезультатПодключения = Там.Initialize ( Там.RMTrade , "/d" + СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле) +    " /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE, ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
    Если РезультатПодключения = 0 Тогда
        Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
    КонецЕсли;  

        Би = СоздатьОбъект("БухгалтерскиеИтоги");
    Би.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Склад,2);
    Би.ИспользоватьСубконто(ВидыСубконто.ТМЦ,СТМЦ);
    Би.ВыполнитьЗапрос(КонДата, КонДата, "281");
    Би.ВыбратьСубконто(ВидыСубконто.ТМЦ);
    Пока Би.ПолучитьСубконто(ВидыСубконто.ТМЦ) = 1 Цикл                                    //Анализ остатков на магазине эта база
        Если Би.СКД(3) <= 0 Тогда
            Продолжить;
        КонецЕсли;
        Ы = "";
        Т.НайтиЗначение(Би.Субконто(ВидыСубконто.ТМЦ),Ы,"Т");
        Т.ПОлучитьСтрокуПоНомеру(Ы);
        Т.ОстМ = Би.СКД(3);  
        Состояние("Заполнение остатками в этой базе");
    КонецЦикла;        
    
    СкладТам = Там.CreateObject("Справочник.МестаХранения");
    Если СкладТам.НайтиПоНаименованию(СокрЛП(Склад.Наименование),0) = 0 ТОгда
        Сообщить("Не могу там найти склад "+СокрЛП(Склад.Наименование));  
        возврат;
    КонецЕсли;    
    СТМЦТам = Там.CreateObject("СписокЗначений");
    ТМЦТАМ = Там.CreateObject("Справочник.ТМЦ");
    Т.ВыбратьСтроки();
    Пока Т.ПолучитьСтроку() = 1 Цикл
        Если ТМЦТам.НайтиПоКоду(Т.Код,0) = 1 Тогда
            СТМЦТам.ДобавитьЗначение(ТМЦТам.ТекущийЭлемент());
            Состояние("Формирование списка товаров для анализа в ТОЙ базе")
        КонецЕсли;    
    КонецЦикла;    
    БиТам = Там.CreateObject("БухгалтерскиеИтоги");
    БиТам.ИспользоватьСубконто(Там.ВидыСубконто.МестаХранения,СкладТам,2);
    БиТам.ИспользоватьСубконто(Там.ВидыСубконто.ТМЦ,СТМЦТам);
    БиТам.ВыполнитьЗапрос(КонДата, КонДата, "281");                                           //Анализ остатков на магазине ТА база
    БиТам.ВыбратьСубконто(Там.ВидыСубконто.ТМЦ);
    Пока БиТам.ПолучитьСубконто(Там.ВидыСубконто.ТМЦ) = 1 Цикл
        Если БиТам.СКД(3) <= 0 Тогда
            Продолжить;
        КонецЕсли;
        Ы = "";  
        Т.НайтиЗначение(БиТам.Субконто(Там.ВидыСубконто.ТМЦ).Код,Ы,"Код");
        Т.ПОлучитьСтрокуПоНомеру(Ы);
        Т.ОстМ = Т.ОстМ + БиТам.СКД(3);
        Состояние("Заполнение остатками в Той базе");
    КонецЦикла;
Просмотров: 176, последний комментарий от Talkman   
Произвольное условие (запрос) для разных документов [раздел Программирование в 1С Предприятие 8.3]
Автор Constantus — 22.05.20, 12:06 — 3 комментариев
Приветствую, Форумчане!
1с8.3.12, УФ, самопис

В одном из документов есть вкладка с произвольным условием запрос в текстовом формате (упрощенный пример) Условие_ПроизвольноеУсловие:

Контекст.Подходит = Ложь;
Запрос = Новый Запрос;

Запрос.Текст =
"ВЫБРАТЬ
|    ЗаказМодельИКомплектация.Номенклатура КАК Номенклатура
|ИЗ
|    Документ.Заказ.МодельИКомплектация КАК ЗаказМодельИКомплектация
|ГДЕ
|    ЗаказМодельИКомплектация.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Контекст.Объект);

Если НЕ Запрос.Выполнить().Пустой() Тогда
    Контекст.Подходит = Истина;
КонецЕсли;


Запускается это в одном из модулей

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


Всё это работает, но вот пришла беда.
Если посмотреть код, то это произвольное условие срабатывает жестко только на один тип документов "Заказ"
Документ.ЗАКАЗ.МодельИКомплектация КАК ЗаказМодельИКомплектация


Теперь решили эту гадость распространить и на другой документ "Консультации", т.е. каким-то волшебным способом этот текст произвольного условия должен превратиться в
Документ.КОНСУЛЬТАЦИИ.МодельИКомплектация КАК ЗаказМодельИКомплектация


Сможете посоветовать как можно программно это изменить?
Типа

Контекст = Новый Структура("Объект, Акция, Подходит, ДокументПоиска", Объект, Акция, Ложь, "Заказ"/"Консультации");
Документ.[ДокументПоиска].МодельИКомплектация КАК ЗаказМодельИКомплектация


Просмотров: 133, последний комментарий от Vofka   
ограничение прав доступа к записям справочника в зависимости от текущего пользователя [раздел Программирование в 1С Предприятие 8.3]
Автор Pashkevich — 21.05.20, 12:24 — 3 комментариев
всем доброго дня!

есть два справочника Сотрудники и АрбитражноеДело. нужно установить разграничение доступа к записям, то есть чтобы пользователь(роль АрбитражныйУправляющий) видел только себя в сотрудниках и свои арбитражные дела.

в справочнике сотрудник ограничение делаю по реквизиту Наименование, а в справочнике арбитражное дело - по реквизиту Ответственный.

вот сами ограничения







также создал параметр сеанса ТекущийПользователь (СправочникСсылка.Сотрудники)

и в модуле сеанса написал следующую процедуру:

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

    ПараметрыСеанса.ТекущийПользователь = ТекПользователь;
    
    
КонецПроцедуры


но все-равно, когда заходишь под арбитражным управляющим, в справочнике арбитражное дело нет ни одной записи, а справочник сотрудники в принципе отсутствует, хотя галка просмотр в роли стоит.

подскажите, пожалуйста

p/s/ версия 8.3.16.1063, конфа самописная, УФ
Просмотров: 153, последний комментарий от Vofka   
УПП 1.3 В управленческом начислении не найдена расчетная база [раздел 1С Управление производственным предприятием 8]
Автор anna_v — 21.05.20, 8:12 — 0 комментариев
В формуле расчета "Доплата" указан тип - зависимое первого уровня и формула -РасчетнаяБаза* Процент/Показатель. Оклад по часам определен как базовое начисление.
Сам оклад по часам считается , его часы определяются. Процент и показатель указываются явно в начислении зарплаты. При расчете пишет ошибку "показатель "Расчетная база" не найден.
Пробовала поставить расчетную базу в часах, чтоб хоть понять, определяется база или нет. Тогда ошибки нет, просто результат расчета=0.
Как проверить, почему не видится расчетная база?
Просмотров: 97, оставить комментарий   
нажатие на поле ввода програмно [раздел Программирование в 1С Предприятие 8.1 (8.0)]
Автор 4andriy — 20.05.20, 20:03 — 2 комментариев
1С 7.7: Предприятие

Есть документ "Доверенность". В форме Сотрудников я добавил поле ввода с типом "Документ.Доверенность". Потом зашел в сотрудника и в поле ввода выбрал доверенность с его реквизитами.

Я могу без проблем очень быстро открыть типовую для сотрудника доверенность и поправить уже существующий документ:

Элемент=СоздатьОбъект("Справочник.Сотрудники");
Элемент.найтиЭлемент(ТекущийЭлемент());
ОткрытьФорму(Элемент.Дов);


Но код открывает документ, а мне нужно програмно инициировать нажатие на поле ввода что-бы отрылся журнал довереностей, был выбран но не открыт именно тот документ который надо и уже потом можно было скопировать либо изменить либо удалить документ.

Код открытия формы не подходит поскольку он открывает журнал но не указывает на нужный документ как это происходит когда поле ввода нажимаем мышкой:
ОткрытьФорму("Журнал.Общий");
Просмотров: 138, последний комментарий от denis84   
Расчет итогов тормозит получение остатка [раздел Администрирование и настройка 1С]
Автор lex2707 — 20.05.20, 10:12 — 1 комментариев
Добрый день.
При заполнении инвентаризации по регл остаткам если указать дату из периода за кот. произведен расчет итогов то заполнение длится 1 час, если указать тек дату то выполняется за 30 сек.
Итоги пересчитывал, переиндекацию выполнял ничего не изменилось.
8.2.19.130 УТП клиент сервер SQL
Просмотров: 123, последний комментарий от Макс1С   
RSS Текстовая версия Сейчас: 01.06.20, 1:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!