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

Хранилище

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

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


Свернуть

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

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

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

Форум:

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

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

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

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

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

 
выбор из формыСписка Регистра Накопления [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор alexandr_f — 20.07.18, 8:13 — 2 комментариев
Надо выбрать строку из Регистра Накопления
ФормаВыбора = РегистрыНакопления.ПартииМатериаловВЭксплуатации.ПолучитьФормуСписка();


  ЭлементОтбора = ФормаВыбора.РегистрНакопленияСписок.Отбор.Подразделение ;
    Если ЭлементОтбора <> Неопределено Тогда
        ЭлементОтбора.ВидСравнения  = ВидСравнения.Равно;
        ЭлементОтбора.Значение      = Подразделение;
        ЭлементОтбора.Использование = Истина;
    КонецЕсли;

  Номенклатура=ФормаВыбора.ОткрытьМодально();
    Элемент.Значение=Номенклатура.Номенклатура;

Ничего.
Как из формы вернуть Строку?

alexandr_f @ Сегодня, 8:49 * ,
Пардон Значение нашел.
Теперь другой вопрос . Как сделать из формы списка форму выбора, формы выбора у РН нет . Форма списка открывает регистратор.
Просмотров: 38, последний комментарий от sava1   
загрузка из excel ( управляемые формы) [раздел Программирование в 1С Предприятие 8.3]
Автор Юля — 19.07.18, 13:37 — 14 комментариев
Привіт, допоможіть будь-ласка, пишу обробку загрузка зарплати із екселя, в коді видає наступну помилку:
&НаКлиенте
Процедура Прочитать(Команда)
    
    //ПрочитатьНаСервере();
    
    
    //очищаем таблицу и удаляем колонки
    Таблица.Очистить();
    Таблица.Колонки.Очистить();
    ЭлементыФормы.Таблица.Колонки.Очистить();
    
    
    //подключаемся к эксел
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(КаталогФайла);
        Состояние("Обработка файла Microsoft Excel...");
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        
    Попытка
        //Открываем необходимый лист
        Excel.Sheets(1).Select();  // лист 1, по умолчанию  
    Исключение
        //Закрываем Excel
        Excel.ActiveWorkbook.Close();     
        Excel = 0;
        Сообщить("Файл "+Строка(КаталогФайла)+" не соответствует необходимому формату! Первый лист не найден!");
        //ОтменитьТранзакцию();
        Возврат;
    КонецПопытки;    
    

    //Получим количество строк и колонок.
    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
    Если Версия = "8" тогда
        ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
        ФайлСтрок   = Excel.Cells(1,1).SpecialCells(11).Row;
        ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;  
    Конецесли;
    
    
    //считываем первую строку и генерируем колонки    
    Сч = 1;    
    Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).Text) Цикл
        ИмяКолонки = Excel.Cells(1, Сч).Text;
        ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",""); // убираем из имени колонок пробелы
        Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки);         
        НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки);
        НоваяКолонка.Данные = ИмяБезПробелов;
        Сч = Сч + 1;
    КонецЦикла;
    
    
    Для НС = 2 по ФайлСтрок Цикл  // НС указываем с какой строки начинать обработку        
        
        Состояние("Файл "+Строка(КаталогФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");
        
        ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
        
        НоваяСтрока = Таблица.Добавить();        
            
        Для НомерКолонки = 1 по Таблица.Колонки.Количество() Цикл
            //заполняем строку значениями
            ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Text;
            ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя;             
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;            
        КонецЦикла;
        
    КонецЦикла;  
    
    
Excel.ActiveWorkbook.Close();     
        Excel = 0;
    

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



err^ {ВнешняяОбработка.пкм_УниверсальнаяЗагрузкаИзExcel.Форма.Форма1.Форма(42)}: Поле об`єкту не виявлено (Колонки)
Таблица.Колонки.Очистить();
Просмотров: 179, последний комментарий от andr_andrey   
Не отображается элемент формы в перечне элементов [раздел Программирование управляемых форм 1С 8.2]
Автор Bernet — 18.07.18, 13:46 — 4 комментариев
Всем привет.

1С 8.3.10, УТП последней редакции.

Ситуация: Есть обработка, написанная на упр формах. на ней куча разных элементов формы, в том числе есть динамический список.
Мне нужно было добавить ещё одну колонку - "Ответственный" этого списка, что я собственно и сделал. Добавил в произвольный запрос, вытащил на форму, все ок, у себя запускаю, у меня работает. Также работает ещё у одного сотрудника. А тот кому по сути эта штука нужна была говорит, что он не видит данной колонки. Смотрю, действительно её нет у него. Судя по всему открывается какая-то сохраненная настройка интерфейса формы, но не могу вспомнить где она хранится.

Что уже делал:
- в первую очередь проверил есть ли какая-то настройка в РС "Сохраненные настройки" - нету;
- далее попробовал очистить кеш, удалил базу из списка того пользователя и добавил заново - не помогло;
- начал копать глубже, удалил настройку связанную с этим объектом в "ХранилищеСистемныхНастроек" - тоже не помогло;

Вопрос: Где ещё может храниться какая-то настройка элементов упр формы? Когда в отладке смотрю, то сразу же при открытии формы в "Элементы" нету моего добавленного реквизита. Хотя когда под собой запускаю, он есть, и в Элементах я его вижу
Просмотров: 82, последний комментарий от Bernet   
Сообщение "Mail delivery failed" в результате отправки письма из 1С [раздел Программирование в 1С Предприятие 8.3]
Автор Gigi — 16.07.18, 16:54 — 0 комментариев
Всем привет!
Не хочу дублировать то что уже написал продолжив начатую тему...поэтому о проблеме написал тут
Опять проблемы .... Что бы было в стиле сделал отмучился и забыл где такое счастье.
Ладно! Буду признателен!
Просмотров: 63, оставить комментарий   
Подписка на событие: ошибка при обмене РИБ [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор Constantus — 16.07.18, 12:00 — 7 комментариев
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Сделал подписку на события с целью "мягкой" проверки правильного заполнения статей движения денежных средств с возможностью отказа запрета "ПередЗаписью":

Код
Для Каждого СТЧ из Источник.РасшифровкаПлатежа Цикл
        Если СТЧ.СтатьяДвиженияДенежныхСредств.ВаловаяПрибыль
            И НЕ ЗначениеЗаполнено(Источник.ДатаВП) Тогда
            Сообщить("Данная статья (" + СТЧ.СтатьяДвиженияДенежныхСредств + ") предусматривает участие в Отчете по валовой прибыли." + Символы.ПС + "Рекомендуется указать период учета по данной статье. Иначе данные средства не войдут в учет по валовой прибыли.");
            
            Ответ = Вопрос("Требуется ли указать период учета?", РежимДиалогаВопрос.ДаНет,0);
            Если Ответ = КодВозвратаДиалога.Нет Тогда
                Отказ = Ложь;
            Иначе
                Отказ = Истина;  
            КонецЕсли;
            
        КонецЕсли;    
    КонецЦикла;


Ну т.е. была попытка только рекомендовать, если не надо, то и не надо, документ проводится спокойно.

Когда тестировал, всё срабатывало без проблем. Обновил конфигурацию. Запустил обмен РИБ. Сначала автообмен с полными правами и выдало ошибку:


Цитата
{ОбщийМодуль.Мой.Модуль(958,57)}: Переменная не определена (РежимДиалогаВопрос)
Ответ = Вопрос("Требуется ли указать период учета?", <<?>>РежимДиалогаВопрос.ДаНет,0);
{ОбщийМодуль.Мой.Модуль(959,17)}: Переменная не определена (КодВозвратаДиалога)
Если Ответ = <<?>>КодВозвратаДиалога.Нет Тогда
{ОбщийМодуль.Мой.Модуль(958,12)}: Процедура или функция с указанным именем не определена (Вопрос)
Ответ = <<?>>Вопрос("Требуется ли указать период учета?", РежимДиалогаВопрос.ДаНет,0);


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

Почему такое случилось? Почему неопределенность переменных и функции "Вопрос" увиделось только при обмене данными? Ну и соответственно автообмен упал.
Что нужно предпринять?
Просмотров: 144, последний комментарий от sava1   
Одночасна робота двох COM-портів на W10 [раздел Работа с торговым оборудованием]
Автор yur — 16.07.18, 11:26 — 5 комментариев
До ноута на W10H підключено два ФР в USB через емуляцію COM.
Раніше стояла Віста, 1с була запущена два рази для двох підприємств. Два ФР одночасно працювали.
Змінився ноут на W10. Все працює, але тільки окремо. Якщо перше запустилось, то друге не підключається. Порти різні, швидкості різні, але спільно працювати відмовляються.
На одному ФР драйвер АртСофт, на іншому OPOS.
Просмотров: 128, последний комментарий от yur   
1с И СКУД u-prox ip [раздел Программирование в 1С Предприятие 8.3]
Автор ivan.kh — 14.07.18, 16:03 — 1 комментариев
Добрый день.
Был ли у кого опыт работы со СКУД u-prox ip?
Интересует загрузка табелей по данным СКУДа ... не понял в какой/каких таблицах в базе данных СКУДа хранятся данные о входе/выходе.
Просмотров: 99, последний комментарий от ivan.kh   
В данной транзакции уже происходили ошибки... [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор Constantus — 12.07.18, 12:39 — 18 комментариев
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

В документе РКО в модулях по проведению и распроведения имеется код:

        Для Каждого Заявка Из РасшифровкаПлатежа Цикл
            Попытка
                Док = Заявка.ДокументПланированияПлатежа.ПолучитьОбъект();
                Док.РКО = Ссылка;
                Док.Записать(РежимЗаписиДокумента.Запись);
            Исключение
            КонецПопытки;
        КонецЦикла;


Именно этот код мне сейчас и создает проблемы при проведении и отмены проведения, выдает сообщение "В данной транзакции уже происходили ошибки"

Если его убрать, то всё нормально. Однако данный код вынужденное зло, т.к. начальника потребовал, чтобы после формирования РКО в соответствующей Заявке (у нас ведется обязательный учет по Заявкам).

Именно применение "Попытка" и создает проблемы, но если это убрать, то тоже создаются проблемы при проведении и антипроведении, т.к. на филиалах применение Заявок не обязательно.

Что можно придумать, чтобы ошибки не было, но и код выполнялся для записи ссылки на документ?
Просмотров: 275, последний комментарий от Constantus   
Редактирование макета печати кассовых ордеров [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор yurton — 12.07.18, 10:05 — 3 комментариев
Привет!
Как самому отредактировать макеты печати кассовых ордеров (ПКО и РКО). 1С 8 - конфа Бухгалтерия для с/х предприятий Украины1.2 (почти то же, что и типовая "1С Бухгалтерия для Украины 1.2" ?
Просто не могу найти макеты. В 8-ке недавно, до этого кодил в 7.7.
Просмотров: 119, последний комментарий от yurton   
Обнаружено дублирование ключевых значений в колонках: ссылка [раздел Программирование в 1С Предприятие 8.3]
Автор Andrian — 11.07.18, 9:06 — 4 комментариев
При переходе в режиме Предприятия на вкладку "Заказы Клиентов" выдает ошибку "обнаружено дублирование ключевых значений в колонках: ссылка"
вот код запроса
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
    ДокументЗаказКлиента.Организация КАК Организация,
    ДокументЗаказКлиента.Соглашение КАК Соглашение,
    ДокументЗаказКлиента.Договор КАК Договор,
    ДокументЗаказКлиента.Сделка КАК Сделка,
    ДокументЗаказКлиента.Валюта КАК Валюта,
    ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
    ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
    ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
    ДокументЗаказКлиента.ЖелаемаяДатаОтгрузки КАК ЖелаемаяДатаОтгрузки,
    ДокументЗаказКлиента.Склад КАК Склад,
    ДокументЗаказКлиента.Статус КАК Статус,
    ДокументЗаказКлиента.Менеджер КАК Менеджер,
    ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
    ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
    ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
    ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
    ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
    ВЫБОР
        КОГДА НЕ ДокументЗаказКлиента.Проведен
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
        ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
    КОНЕЦ КАК Состояние,
    ВЫБОР
        КОГДА НЕ ДокументЗаказКлиента.Проведен
            ТОГДА ЛОЖЬ
        КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
                И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Просрочен,
    ВЫБОР
        КОГДА ДокументЗаказКлиента.Приоритет В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    Приоритеты.Ссылка КАК Приоритет
                ИЗ
                    Справочник.Приоритеты КАК Приоритеты
                УПОРЯДОЧИТЬ ПО
                    Приоритеты.РеквизитДопУпорядочивания)
            ТОГДА 0
        КОГДА ДокументЗаказКлиента.Приоритет В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    Приоритеты.Ссылка КАК Приоритет
                ИЗ
                    Справочник.Приоритеты КАК Приоритеты
                УПОРЯДОЧИТЬ ПО
                    Приоритеты.РеквизитДопУпорядочивания УБЫВ)
            ТОГДА 2
        ИНАЧЕ 1
    КОНЕЦ КАК КартинкаПриоритета,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
    ВЫБОР
        КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
            ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК НашДолг,
    ВЫБОР
        КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
            ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК ДолгКлиента,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
    СостоянияЭД.СостояниеВерсииЭД,
    РеализацияТоваровУслуг.Дата КАК ДатаРеализации,
    ВЫРАЗИТЬ(РАЗНОСТЬДАТ(&ТекущаяДата, РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК ЧИСЛО(15, 1)) КАК Просрочка,
    РеализацияТоваровУслуг.ДокументОснование.Ссылка
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ДокументЗаказКлиента
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
            ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
            {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
            ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
        ПО РеализацияТоваровУслуг.ЗаказКлиента = ДокументЗаказКлиента.Ссылка
            И РеализацияТоваровУслуг.ДокументОснование = ДокументЗаказКлиента.Ссылка
Просмотров: 141, последний комментарий от Petre   
Добавление вычисляемого поля в динамический список [раздел Программирование в 1С Предприятие 8.3]
Автор Andrian — 10.07.18, 13:46 — 8 комментариев
Всем привет, есть проблема!
Есть Динамический список "ФормаСпискаДокументов" документа "ЗаказКлиента" и есть еще документ "РеализацияТовароИУслуг" и проблема в том, что не могу вывести запросом поле "Дата" документа "ЗаказКлиента", в котором мне надо подсчитать количество дней числом от документа "РеализацияТовароИУслуг" ДатаРеализации -(минус) ТекущаяДата
Просмотров: 180, последний комментарий от Andrian   
Не срабатывает ОбработкаВнешнегоСобытия при сканировании штрих кода [раздел Программирование в 1С Предприятие 8.3]
Автор Leschyu — 10.07.18, 11:30 — 18 комментариев
Доброго времени суток!
Столкнулся с проблемой в самописной конфигурации на дистрибутиве Lubuntu 18.04 и версии платформы 1С:Предприятие 8.3 (8.3.12.1440) (на Windows все отрабатывает без всяких проблем).
В конфигурацию добавил Библиотеку Подключаемого Оборудования и на её базе подключил сканер штрих кодов с помощью драйверов NativeApi.
Но суть не в этом, все работает. Проблема заключается в том, что после сканирования ничего не происходит, а для того, что бы ОбработкаВнешнегоСобытия сработала нужно нажать любую клавишу либо кликнуть мышкой.
Может кто-то сталкивался, помогите пожалуйста.
Просмотров: 428, последний комментарий от batlcat   
Не срабатывают параметры страницы печати отчета [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор Constantus — 10.07.18, 11:20 — 1 комментариев
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

В обработке формирую отчет и вывожу его на макет.

Пытаюсь завести параметры страницы

......................................
    Таб.Вывести( областьПодвал );
    
    таб.МасштабПечати = 80;
    таб.ПолеСлева = 5;
    таб.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    таб.Автомасштаб = Истина;
    
    Возврат Таб;


Ни масштаб, ни поляСлева и темболее Автомасштаб не срабатывают. Живет только Ориентация страницы.

Что я не так сделал?
Просмотров: 106, последний комментарий от sava1   
Печать комплекта [раздел Программирование в 1С Предприятие 8.3]
Автор Andrian — 09.07.18, 15:37 — 3 комментариев
Помогите, в комплект документов с настройкой не добавяляется больше одной внешней печатной формы, стандартные печатные формы добавляются. В чем может быть проблема?
Просмотров: 150, последний комментарий от Vidocq05   
При запросе в условие выдает несоответствие типу [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор kvital — 07.07.18, 7:51 — 2 комментариев
Частично разобрался. Если переменная неопределённой длины то
ПОДОБНО можно вместо = , а вот когда Ссылка, пока не понял.
Просмотров: 109, последний комментарий от Batchir   
ПРЕДСТАВЛЕНИЕССЫЛКИ нельзя выбрать в (ГДЕ) [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор kvital — 06.07.18, 20:02 — 3 комментариев
ВЫБРАТЬ
Код,
Регион Как Регион,
Дом Как Хата,

ПРЕДСТАВЛЕНИЕССЫЛКИ(КК.Дом) КАК Домик

ИЗ
Справочник.Контрагенты КАК КК


ГДЕ
Дом = "2"


Почему немогу (ГДЕ) Выбрать Домик = "2"

1с 8.2
1с 8.3
Запрос
Просмотров: 127, последний комментарий от Batchir   
Итоги нестандартных вычислимых полей [раздел Система компоновки данных]
Автор mms1966 — 06.07.18, 15:54 — 1 комментариев
Добрый день.
Делаю отчет на СКД. Запросом вытягиваем количество хлебобулочных изделий, проданых клиентам.
По строкам-клиенты, столбики - номенклатура. В клетках нужно вывести результат, напимер,
10 нерезаных, 20 резаных, 5 фасованых в виде "н10 р 20 ф5". Все строки хорошо выводятся с помощью
вычислимых полей. Вопрос: как вывести в таком виде итоги?
Просмотров: 109, последний комментарий от mms1966   
Подписка на событие: Проверка заполнения и правильного выбора реквизита документов [раздел Программирование обычных форм 1С 8.2 и не интерфейсной логики]
Автор Constantus — 05.07.18, 9:57 — 7 комментариев
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Поставлена задача, чтобы сделать реквизит "Подразделение" обязательным для заполнения + на одно условие.

Понимаю, что нужно лезть во все документы и менять код, но подумал, может есть возможность проверки на подписки на событие... Но там не нашел событие "ПриИзменении(Подразделение)"

Можете что-нить посоветовать? Вот код для проверки при выборе "правильного" подразделения (не должен быть главным подразделением) + Еще как-то включить проверку на пустоту...

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

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

Просмотров: 201, последний комментарий от Vidocq05   
При закрытии - зависает [раздел Мобильная платформа 1С]
Автор vbi — 04.07.18, 19:52 — 2 комментариев
Цитата
Разработка на 1С:Предприятие 8.3 (8.3.9.2033),
Сборщик:
Прикладное решение предназначено для хранения компонентов, из которых выполняется сборка мобильных приложений для работы на платформе 1С:Предприятие версии 8.3. Также хранятся собранные мобильные приложения. (2.0.5.24)

Мобильная платформа: 8.3.10.51

В самом мобильном приложении, когда нажимаешь кнопку назад - появляется вопрос: "Выйти из прикладной программы?". Когда нижимаешь "Да" - иногда приложение зависает и потом выдает что приложение завершено аварийно. Но в основном быстро и нормально закрывается.

Отследить закономерность не удается когда приложение зависает при закрытии. Фоновых заданий нет.

Как избавится от зависаний? Кто что думает?

Может дело в мобильной платформе? Или в сборщике?
Просмотров: 121, последний комментарий от Petre   
ТТН для бухгалтерии [раздел Программирование в 1С Предприятие 8.3]
Автор XacTLa — 04.07.18, 14:34 — 5 комментариев
1С:Предприятие 8.3 (8.3.9.2309)
Бухгалтерия для Украины, редакция 2.0. (2.0.9.2)

Добрый день, скажи те мне не понимающему делаю ТТН для бухгалтерии Ошибка у меня в том что функция печати код:
 Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТТН") Тогда
            
        
            
    
            ТабДокумент = ПечатьТТН(ПараметрыПечати);
        КонецЕсли;
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТТН", НСтр("ru='Товарно-транспортная накладная (1-ТН)';uk='Товарно-транспортна накладна (1-ТН)'"),
            ТабДокумент,,"Обработка.ПечатьТТН.ПФ_MXL_ТТН");
    
    
    
КонецПроцедуры


Выдает ошибку {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(233)}: В обработчике печати не был сформирован табличный документ для: ТТН2018
ВызватьИсключение(ТекстСообщенияОбОшибке);

Вот весь код:
Функция СведенияОВнешнейОбработке()Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "ТТН2018"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Это 2018 ТТН ");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "ТТН 2018", "ТТН2018", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;
    
КонецФункции // СведенияОВнешнейОбработке()

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

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

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТТН") Тогда
            
        
            
    
            ТабДокумент = ПечатьТТН(ПараметрыПечати);
        КонецЕсли;
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТТН", НСтр("ru='Товарно-транспортная накладная (1-ТН)';uk='Товарно-транспортна накладна (1-ТН)'"),
            ТабДокумент,,"Обработка.ПечатьТТН.ПФ_MXL_ТТН");
    
    
    
КонецПроцедуры

Функция ПечатьТТН(ПараметрыПечати) Экспорт

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

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

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();

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

    Если Документ.ВалютаДокумента = Документ.ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
        // Документ оформлен в валюте взаиморасчетов
        Запрос.УстановитьПараметр("Курс", Документ.КурсВзаиморасчетов);
        Запрос.УстановитьПараметр("Кратность", Документ.КратностьВзаиморасчетов);
    Иначе
        // Документ оформлен в валюте регламентированного учета
        Запрос.УстановитьПараметр("Курс", 1);
        Запрос.УстановитьПараметр("Кратность", 1);
    КонецЕсли;

    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Номенклатура                                 КАК Номенклатура,
    |    ВложенныйЗапрос.Номенклатура.НаименованиеПолное              КАК ТоварНаименование,
    |    ВложенныйЗапрос.Номенклатура.Код                             КАК Артикул,
    |    ВложенныйЗапрос.ЕдиницаИзмерения.Представление               КАК БазоваяЕдиницаНаименование,
    |    ВложенныйЗапрос.ЕдиницаИзмерения.Код                          КАК БазоваяЕдиницаКодПоОКЕИ,
    |    ВложенныйЗапрос.ЕдиницаИзмерения                             КАК ЕдиницаИзмерения,
    |    ВложенныйЗапрос.ЕдиницаИзмерения.Представление                КАК ВидУпаковки,
    |    ВложенныйЗапрос.СтавкаНДС           КАК СтавкаНДС,
    |    ВложенныйЗапрос.Цена                КАК Цена,
    |    ВложенныйЗапрос.Количество          КАК Количество,
    |    ВложенныйЗапрос.Сумма               КАК Сумма,
    |    ВложенныйЗапрос.СуммаНДС            КАК СуммаНДС,
    |    ВложенныйЗапрос.НомерСтроки         КАК НомерСтроки,
    |    ВложенныйЗапрос.Метка               КАК Метка
    |ИЗ
    |
    |    (
    |    ВЫБРАТЬ
    |        РеализацияТоваровУслуг.Номенклатура,
    |        РеализацияТоваровУслуг.Коэффициент,
    |        РеализацияТоваровУслуг.ЕдиницаИзмерения,
    |        РеализацияТоваровУслуг.ЕдиницаИзмерения                      КАК ЕдиницаИзмеренияМест,
    |        РеализацияТоваровУслуг.СтавкаНДС,
    |        РеализацияТоваровУслуг.Цена * &Курс / &Кратность             КАК Цена,
    |        СУММА(РеализацияТоваровУслуг.Количество)                     КАК Количество,
    |        СУММА(РеализацияТоваровУслуг.Сумма    * &Курс / &Кратность)  КАК Сумма,
    |        СУММА(РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность)  КАК СуммаНДС,
    |        МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки)                  КАК НомерСтроки,
    |        0                                                            КАК Метка
    |    ИЗ
    |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
    |    ГДЕ
    |        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |
    |СГРУППИРОВАТЬ ПО
    |        РеализацияТоваровУслуг.Номенклатура,
    |        РеализацияТоваровУслуг.Коэффициент,
    |        РеализацияТоваровУслуг.ЕдиницаИзмерения,
    |        РеализацияТоваровУслуг.СтавкаНДС,
    |        РеализацияТоваровУслуг.Цена
    |
    |    ) КАК ВложенныйЗапрос
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Номенклатура                    КАК Номенклатура,
    |    РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
    |    РеализацияТоваровУслуг.Номенклатура.Код                  КАК Артикул,
    |    РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения.Представление               КАК БазоваяЕдиницаНаименование,
    |    РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения.Код                         КАК БазоваяЕдиницаКодПоОКЕИ,
    |    РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения                             КАК ЕдиницаИзмерения,
    |    NULL                                                  КАК ВидУпаковки,
    |    ""Без НДС""                                           КАК СтавкаНДС,
    |    РеализацияТоваровУслуг.Цена * &Курс / &Кратность      КАК Цена,
    |    РеализацияТоваровУслуг.Количество                     КАК Количество,
    |    РеализацияТоваровУслуг.Сумма * &Курс / &Кратность     КАК Сумма,
    |    0                                                     КАК СуммаНДС,
    |    РеализацияТоваровУслуг.НомерСтроки                    КАК НомерСтроки,
    |    2                                                     КАК Метка
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
    |
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО Метка ВОЗР, НомерСтроки ВОЗР
    |
    |";

    ЗапросТовары = Запрос.Выполнить().Выгрузить();

    ТабДокумент = Новый ТабличныйДокумент;

    Если Шапка.ДатаДокумента < Дата("20140114") Тогда
        ЗаполнитьТТН (Шапка, ЗапросТовары, ТабДокумент,ПараметрыПечати)
    Иначе
        ЗаполнитьТТН2014 (Шапка, ЗапросТовары, ТабДокумент,ПараметрыПечати)
    КонецЕсли;
    
    Возврат ТабДокумент;

КонецФункции // ПечатьТТН()
    
Процедура ЗаполнитьТТН (Шапка, ЗапросТовары, ТабДокумент, ПараметрыПечати)
    
    Документ                 = ПараметрыПечати.Документ;
    МаркаИГосНомерАвтомобиля = ПараметрыПечати.МаркаИГосНомерАвтомобиля;
    ГосНомерПрицепа          = ПараметрыПечати.ГосНомерПрицепа;
    ПунктПогрузки            = ПараметрыПечати.ПунктПогрузки;
    ПунктРазгрузки           = ПараметрыПечати.ПунктРазгрузки;
    Водитель                 = ПараметрыПечати.Водитель;
    Перевозчик               = ПараметрыПечати.Перевозчик;
    ВидПеревозки             = ПараметрыПечати.ВидПеревозки;
    НомерТТН                 = ПараметрыПечати.НомерТТН;
    
    // Зададим параметры макета
    ТабДокумент.ПолеСверху              = 0;
    ТабДокумент.ПолеСлева               = 5;
    ТабДокумент.ПолеСнизу               = 0;
    ТабДокумент.ПолеСправа              = 5;
    ТабДокумент.АвтоМасштаб             = Истина;
    ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

    Макет = УправлениеПечатью.ПолучитьМакет("Обработка.ПечатьТТН.ПФ_MXL_ТТН");
    
    КодЯзыкаПечать = "uk";
    
    // Выводим общие реквизиты шапки
    СведенияОПокупателе       = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель,       Шапка.ДатаДокумента);
    СведенияОГрузополучателе  = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
    СведенияОГрузоотправитель = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);

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

    СтрокНаСтранице = 23;
    СтрокШапки      = 10;
    СтрокПодвала    = 9;
    НомерСтраницы   = 1;

    // Выводим заголовок таблицы
    ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    ТабДокумент.Вывести(ЗаголовокТаблицы);

    КоличествоСтрок = ЗапросТовары.Количество();

    Если КоличествоСтрок = 1 Тогда
        ПереноситьПоследнююСтроку = 0;
    Иначе
        ЦелыхСтраницСПодвалом     = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
        ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
        ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
    КонецЕсли;

    // инициализация итогов по странице
    ИтогоКоличествоНаСтранице = 0;
    ИтогоСуммаСНДСНаСтранице  = 0;

    // инициализация итогов по документу
    ИтогоМест       = 0;
    ИтогоКоличество = 0;
    ИтогоСуммаСНДС  = 0;
    Ном             = 0;

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

        Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
            Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
        ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрок.ТоварНаименование;
        //        Мест        = ВыборкаСтрок.КоличествоМест;
        Количество  = ВыборкаСтрок.Количество;
        СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
        ОбластьМакета.Параметры.Сумма = СуммаСНДС;

        ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаСНДС / Количество);

        ТабДокумент.Вывести(ОбластьМакета);

        // увеличим итоги по дукументу
        ИтогоКоличество = ИтогоКоличество + Количество;
        ИтогоСуммаСНДС  = ИтогоСуммаСНДС  + СуммаСНДС;

    КонецЦикла;

    // Выводим итоги по документу в целом
    ОбластьМакета = Макет.ПолучитьОбласть("Всего");
    ОбластьМакета.Параметры.ИтогоКоличество = ИтогоКоличество;
    ОбластьМакета.Параметры.ИтогоСуммаСНДС  = ИтогоСуммаСНДС;

    ТабДокумент.Вывести(ОбластьМакета);

    // Выводим подвал документа
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

    Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента);
    
    // Отпуск товара разрешил
    ФИООтпускРазрешил       = Руководители.РуководительПредставление;
    ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
    
    ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ДолжностьОтпускРазрешил;
    ОбластьМакета.Параметры.ДоверенностьЧерезКого   = Шапка.Получил;
    
    ОбластьМакета.Параметры.СерияДоверенности = Шапка.ДоверенностьСерия;
    ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
    ОбластьМакета.Параметры.ДатаДоверенности  = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
    ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(ИтогоСуммаСНДС, Константы.ВалютаРегламентированногоУчета.Получить(), КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ПогрузочныеОперации");
    ТабДокумент.Вывести(ОбластьМакета);
    ОбластьМакета = Макет.ПолучитьОбласть("ПрочиеСведения");
    ТабДокумент.Вывести(ОбластьМакета);

КонецПроцедуры // ЗаполнитьТТН()

Процедура ЗаполнитьТТН2014 (Шапка, ЗапросТовары, ТабДокумент, ПараметрыПечати)
    
    Документ                 = ПараметрыПечати.Документ;
    МаркаИГосНомерАвтомобиля = ПараметрыПечати.МаркаИГосНомерАвтомобиля;
    ГосНомерПрицепа          = ПараметрыПечати.ГосНомерПрицепа;
    ПунктПогрузки            = ПараметрыПечати.ПунктПогрузки;
    ПунктРазгрузки           = ПараметрыПечати.ПунктРазгрузки;
    Водитель                 = ПараметрыПечати.Водитель;
    Перевозчик               = ПараметрыПечати.Перевозчик;
    ВидПеревозки             = ПараметрыПечати.ВидПеревозки;
    НомерТТН                 = ПараметрыПечати.НомерТТН;

    
    // Зададим параметры макета
    ТабДокумент.ПолеСверху              = 0;
    ТабДокумент.ПолеСлева               = 5;
    ТабДокумент.ПолеСнизу               = 0;
    ТабДокумент.ПолеСправа              = 5;
    ТабДокумент.АвтоМасштаб             = Истина;
    ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

    Макет = УправлениеПечатью.ПолучитьМакет("Обработка.ПечатьТТН.ПФ_MXL_ТТН2014");
    
    КодЯзыкаПечать = "uk";
    
    // Выводим общие реквизиты шапки
    СведенияОПокупателе       = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель,       Шапка.ДатаДокумента);
    СведенияОГрузополучателе  = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
    СведенияОГрузоотправитель = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);
    
    Если ЗначениеЗаполнено(Документ.БанковскийСчетОрганизации) Тогда
        НомерСчета = Документ.БанковскийСчетОрганизации.НомерСчета;
        Банк       = Документ.БанковскийСчетОрганизации.Банк;
        МФО           = Документ.БанковскийСчетОрганизации.Банк.Код;
        
        СведенияОГрузоотправитель.Вставить("НомерСчета",       НомерСчета);
        СведенияОГрузоотправитель.Вставить("Банк",             Банк);
        СведенияОГрузоотправитель.Вставить("МФО",              МФО);
    КонецЕсли;
    
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.НомерДокумента                = НомерТТН;
    ОбластьМакета.Параметры.ДатаДокумента                 = Шапка.ДатаДокумента;
    ОбластьМакета.Параметры.Грузоотправитель              = Шапка.Грузоотправитель;
    ОбластьМакета.Параметры.Грузополучатель               = Шапка.Грузополучатель;
    ОбластьМакета.Параметры.Плательщик                    = Шапка.Покупатель;
    ОбластьМакета.Параметры.ГрузоотправительПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ,",, КодЯзыкаПечать);
    ОбластьМакета.Параметры.ГрузополучательПредставление  = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузополучателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ,",, КодЯзыкаПечать);
    ОбластьМакета.Параметры.ГрузоотправительПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ,",, КодЯзыкаПечать);
    
    ОбластьМакета.Параметры.МаркаИГосНомерАвтомобиля = МаркаИГосНомерАвтомобиля;
    ОбластьМакета.Параметры.ФИОВодителя = Водитель;
    ОбластьМакета.Параметры.ВидПеревозки = ВидПеревозки;
    ОбластьМакета.Параметры.ГосНомерПрицепа = ГосНомерПрицепа;
    
    ОбластьМакета.Параметры.ПунктПогрузки = ПунктПогрузки;
    ОбластьМакета.Параметры.ПунктРазгрузки = ПунктРазгрузки;
    
    ОбластьМакета.Параметры.ОрганизацияПеревозчик = Перевозчик;
    
    Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента);
    
    // Отпуск товара разрешил
    ФИООтпускРазрешил       = Руководители.РуководительПредставление;
    ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
    
    ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ?(ЗначениеЗаполнено(ФИООтпускРазрешил), ФИООтпускРазрешил + ", " + ДолжностьОтпускРазрешил, "");
    
    ОбластьМакета.Параметры.СерияДоверенности = Шапка.ДоверенностьСерия;
    ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
    ОбластьМакета.Параметры.ДатаДоверенности  = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
    
    СуммаСНДС   = Окр((ЗапросТовары.Итог("Сумма") + ?(Шапка.СуммаВключаетНДС, 0, ЗапросТовары.Итог("СуммаНДС"))), 2);
    ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаСНДС, Константы.ВалютаРегламентированногоУчета.Получить(), КодЯзыкаПечать);
    ОбластьМакета.Параметры.СуммаНДС                = ОбщегоНазначенияБПВызовСервера.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"), Константы.ВалютаРегламентированногоУчета.Получить());
    
    Количество = ЗапросТовары.Итог("Количество");
    КоличествоМест = ?(Цел(Количество) = Количество, Количество, Цел(Количество) + 1);
    КоличествоМестПрописью = НРег(ЧислоПрописью(КоличествоМест,"Л=uk_UK"));
    ОбластьМакета.Параметры.КоличествоМестПрописью  = Лев(КоличествоМестПрописью,СтрДлина(КоличествоМестПрописью)-3);
    
    ТабДокумент.Вывести(ОбластьМакета);
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    
    // Выводим заголовок таблицы
    ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    ТабДокумент.Вывести(ЗаголовокТаблицы);
    
    КоличествоСтрок = ЗапросТовары.Количество();

    // инициализация итогов по странице
    ИтогоКоличествоНаСтранице = 0;
    ИтогоСуммаСНДСНаСтранице  = 0;

    // инициализация итогов по документу
    ИтогоМест       = 0;
    ИтогоКоличество = 0;
    ИтогоСуммаСНДС  = 0;
    Ном             = 1;

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

        Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
            Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
        ОбластьМакета.Параметры.НомерСтроки = Ном;
        ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрок.ТоварНаименование;
        //        Мест        = ВыборкаСтрок.КоличествоМест;
        Количество  = ВыборкаСтрок.Количество;
        СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
        СуммаБезНДС = СуммаСНДС - ВыборкаСтрок.СуммаНДС;
        
        ОбластьМакета.Параметры.Сумма = СуммаСНДС;

        ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);

        ТабДокумент.Вывести(ОбластьМакета);

        // увеличим итоги по дукументу
        ИтогоКоличество = ИтогоКоличество + Количество;
        ИтогоСуммаСНДС  = ИтогоСуммаСНДС  + СуммаСНДС;
        Ном             = Ном + 1;

    КонецЦикла;

    // Выводим итоги по документу в целом
    ОбластьМакета = Макет.ПолучитьОбласть("Всего");
    ОбластьМакета.Параметры.ИтогоКоличество = ИтогоКоличество;
    ОбластьМакета.Параметры.ИтогоСуммаСНДС  = ИтогоСуммаСНДС;

    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ТабДокумент.Вывести(ОбластьМакета);
    ОбластьМакета = Макет.ПолучитьОбласть("ПогрузочныеОперации");
    ТабДокумент.Вывести(ОбластьМакета);
    
КонецПроцедуры  //ЗаполнитьТТН2014
Просмотров: 178, последний комментарий от sava1   
RSS Текстовая версия Сейчас: 20.07.18, 18:21
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне