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

Хранилище

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

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



История благодарностей участнику Макс1С ::: Спасибо сказали: 62 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
20.11.19, 16:58 Системная функция "ТипЗнч()" - не вопрос, а просто мнение
Цитата(Gigi @ 20.11.19, 9:43) *
Я специально изложил подробно и понятно что бы было ясно что нужно было

Ничего подобного. В одном посте я нашел упоминание задачи, всё остальное - вода.
Цитата(Gigi @ 20.11.19, 9:43) *
проблемами я столкнулся для решения поставленной задачи

не интересно сколько проблем. Большинство, если не все, от незнания или нежелания изучить правильные подходы для решения задач. Озвученная задача достаточно тривиальна для того, чтобы изобретать велосипеды.
Искренне понимаю, что трудно признать свой много-дневный/месячный труд не идеальным из-за неверного подхода в самом начале, но ничего страшного, на ошибках учатся.
Цитата(Gigi @ 20.11.19, 9:43) *
Так вот системная функция: "ТИПЗНЧ()"

не знаю чем вас зацепила эта функция... О том что может любая функция и для чего она предназначена описано в документации к каждой системе, не только к 1С.
Вы расчесываетесь вилкой? На хлеб намазываете зубную пасту? к слову о том что инструмент не важен... вы пытаетесь сработавший в одном случае инструмент применить в других, неподходящих, целях. Открыв пивную бутылку ложкой, пытаетесь открыть ложкой окно или глаза спящему человеку.
Цитата(Gigi @ 20.11.19, 9:43) *
Вопрос: Как с помощью функции ТипЗнч() узнать то что слева от точки.

Как с помощью самоката уехать на луну?
Как зубочисткой убить кита?
Как с помощью линейки и циркуля построить квадратуру круга?

Внимание, правильный вопрос: "Как узнать то что слева от точки?"
Ответ в моём предыдущем посте, в самом начале листинга, вместе с примером решения задачи, которую вы озвучили.

Цитата(Gigi @ 20.11.19, 9:43) *
И это первый раунд.

Никаких раундов. Это была последняя бесплатная консультация
demon14,
19.11.19, 14:33 Системная функция "ТипЗнч()" - не вопрос, а просто мнение
Не удержался чтобы не ответить. Насколько я понимаю суть задачи описана так:
Цитата(Gigi @ 15.11.19, 10:11) *
Потом нажимает на кнопку «Назначить реквизиты авто-заполнения» и появляется форма списка всех реквизитов конкретного справочника или документа с галочками. После чего в форме списка отмечает реквизиты для авто-заполнения, при создании нового объекта и нажимает на Ок. И тут, после чего идет запись в табличную часть справочника, на пример с именем: «AutoFill». Где по каждой строке сохраняются имена реквизитов под те значения, которые значились в самой открытой пользователем форме объекта

Т.е. дать пользователю возможность заполнить 1 раз значения по умолчанию, сохранить их и в дальнейшем подставлять в документ.

На реализацию в самописной базе чернового варианта я потратил чуть больше времени (засёк - 32 минуты) чем в 4й раз перечитывая эту ветку и несоизмеримо меньше, пытаясь понять что курит ТС.
&НаСервере
Процедура НужныйОбъектПриИзмененииНаСервере()
    // НужныйОбъект - ссылка, даже пустая элемента справончика или документа
    // ТаблицаЗначенийРеквизитов - ТЗ на форме
    // в которой пользователь будет заполнять всё, что хочет
    Мет = НужныйОбъект.Метаданные();
    Если  Метаданные.Документы.Содержит(Мет)  Тогда
        ВидОбъекта = "Документ";
    ИначеЕсли Метаданные.Справочники.Содержит(Мет) Тогда
        ВидОбъекта = "Справочник";
    Иначе
        Возврат;
    КонецЕсли;
    
    ТипОбъекта = Мет.Имя;
    
    Для Каждого Рекв Из Мет.Реквизиты Цикл        
        НовСтр = ТаблицаЗначенийРеквизитов.Добавить();
        // для идентификации какой объект заполнять,
        // хотя здесь тоже можно 1 реквизитом обойтись
        НовСтр.ВидОбъекта = ВидОбъекта;
        НовСтр.ТипОбъекта = ТипОбъекта;    
        
        НовСтр.ИмяРквизита = Рекв.Имя;
        // для составого типа будет массив, непринипиально
        НовСтр.ТипДанных = Рекв.Тип;
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура НужныйОбъектПриИзменении(Элемент)
    НужныйОбъектПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ТаблицаЗначенийРеквизитовПриАктивизацииЯчейки(Элемент)    
    Если Элемент.ТекущийЭлемент.Имя = "ТаблицаЗначенийРеквизитовЗначениеРеквизита" Тогда
        ТекущиеДанные = Элементы.ТаблицаЗначенийРеквизитов.ТекущиеДанные;

        Если ЗначениеЗаполнено(ТекущиеДанные.ТипДанных) Тогда
            // кроме этого места, когда пользователь выбирает данные, тип больше нигде не нужен
            Элемент.ТекущийЭлемент.ОграничениеТипа = ТекущиеДанные.ТипДанных;
        КонецЕсли;
    КонецЕсли;    
КонецПроцедуры

&НаСервере
Процедура СохранитьШаблонНаСервере()
    Набор = РегистрыСведений.ДанныеАвтозаполнений.СоздатьНаборЗаписей();
    Набор.Отбор.ВидОбъекта.Установить(ВидОбъекта);
    Набор.Отбор.ТипОбъекта.Установить(ТипОбъекта);
    
    Набор.Прочитать();
    Набор.Очистить();
    
    // заполненную значениями таблицу можно сохранить в регистр сведений или куда угодно !!!БЕЗ ТИПОВ!!!
    // при заполнении нового элемента значениями по-умолчанию мне всё равно какой там тип.    
    Для Каждого Стр Из ТаблицаЗначенийРеквизитов Цикл
        Если ЗначениеЗаполнено(Стр.ЗначениеРеквизита) Тогда
            НоваяЗапись = Набор.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяЗапись,Стр);
        КонецЕсли;
    КонецЦикла;
    
    Набор.Записать();
КонецПроцедуры

&НаКлиенте
Процедура СохранитьШаблон(Команда)
    СохранитьШаблонНаСервере();
КонецПроцедуры




так что счёт 0-22(половина постов этой темы) не в вашу пользу
Моё мненеие: вам очень сильно нужно учить матчасть и потренироваться строить структуру ваших решений до начала программирования с более опытными коллегами. Ну и кончено не выливать кучу рассуждений на форумах, вместо того чтобы озвучить внятно задачу и попросить помощи.
Отдельные посты я бы вообще потер, чтобы, не дай бог, не попались кому-то начинающему на глаза, который всерьёз воспримет все ваши АКСИОМЫ.
demon14, Gigi, Vofka,
18.11.19, 11:46 Как упорядочить строки по номеру 1С 7.70.003 торговля склад для Украины?
ZUBR @ Сегодня, 11:40 * ,


Сортировать(<?>,);
Синтаксис:
Сортировать(<Колонки>,<ДокумПоДате>)
Назначение:
Сортировать таблицу значений по колонкам.
Параметры:
<Колонки> - строковое выражение, которое определяет колонки, порядок и направление сортировки. Формат передаваемой строки - это разделенные запятыми номера или идентификаторы колонок со знаком направления сортировки ( ''+'' - сортировать по возрастанию; ''- '' - сортировать по убыванию; ''*'' - сортировать по внутреннему значению). Знак направления сортировки можно указывать до или после обозначения колонки через пробел или без пробела. По умолчанию направление сортировки принимается по возрастанию.
<ДокумПоДате> - необязательный параметр. Имеет смысл только в том случае, если значениями таблицы значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 - сортировка по хронологии документов; 0 - нет. Значение по умолчанию - 0.


например:

МояТабл.Сортировать("ИмяКолонки1,ИмяКолонки2");
ZUBR,
18.11.19, 11:32 Не закрывается 91 счет при закрытии месяца
fokses @ 15.11.19, 17:28 * ,
Если в закрытии "Дт 91 - Кт 207 15.00 грн (корректировка стоимости списания)" - это корректировка Требования накладной.
Такое случается когда в отчете производства за смену одна и та же номенклатура в материалах и в продукции - так делать нельзя, выпускаемая продукция должна отличаться.
fokses,
15.11.19, 18:13 Экономическое обоснование внедрения изменений в бизнес процесс и систему
Fasharama @ Сегодня, 12:06 * ,

5) Начать нужно с целей, скорее всего цели автоматизации частично пересекутся с целями реструктуризации в целом. Т.е. "что нужно в итоге?"
7) Потом хорошо бы описать процессы как новые так и те, которые останутся(вдруг найдем новую систему которая хорошо решает и старые и новые задачи), таким образом получим ответ на вопрос "как будем достигать целей?"
3) Если есть какая-то учетная система пока можно самостоятельно оценить как новые процессы и документы ложатся без правок системы, насколько сложно/долго будет вести новые функции на бумаге/екселе/в уме. То чего нет в текущей системе и будет начальным заданием на автоматизацию, а потенциальная разница в скорости/надежности работы, рисках потерь данных и т.д. будет экономическим обоснованием таких изменений. Я бы рассматривал такие затраты как часть затрат всей реструктуризации, но это по решению того кто платит деньги, могут посчитать что при цели реструктуризации "увеличить продажи в 2 раза" текущий состав менеджеров справиться с блокнотами и ручками в текущем составе
2,1) На начальном этапе кроме затрат на обследование заложить не получится, без опыта внедрения таких или похожих изменений. Если внедрением планирует заниматься внутренняя ИТ служба, тогда это их задача - по предварительным задачам оценить время и ресурсы которые они потратят на доработки и сформировать бюджет в суммовом выражении (условно их зарплата * на количество месяцев внедрения). Если своей службы нет, искать фирмы/аутсорсов которые могут провести обследование (за деньги, поскольку может занять от часов до месяцев).
4) соответственно эту информацию может дать тот кто будет исполнителем или менеджером этого проекта.
6) если речь про лог изменений учетной системы, имхо должны делать аналитики ИТ службы(при наличии) или стороннего исполнителя в виде технического описания по завершении этапов проекта

как-то так..

А в общем без предварительного обследования практически нет шансов "угадать" бюджет. У товарища была задача : внедрить БАС ЕРП в торговой компании. После обследования двумя франчами озвучили бюджеты расходящиеся в 3-4 раза, причем меньшая цифра 7значная, большая - 8значная
Fasharama,
15.11.19, 17:30 Підкажіть будь-ласка у мене 1с 1.2 Базова для України ,можна якось зняти конфігурацію з підтримки?
zoltan @ Сегодня, 17:17 * ,
Базовую можно легально обновить до 2.1 и будет IBAN и всё остальное
zoltan,
30.10.19, 17:57 Не закрывается 231 счёт
Виктория91 @ Сегодня, 16:28 * ,
Причин может быть несколько, для начала нужно рассмотреть сообщения которые выдает документ Закрытие месяца при проведении, если выдает.

Если ничего не выдаёт или как было тут , возможен вариант когда и продукция и материал одна и та же номенклатура на каком-то этапе - так делать нельзя. Признаком такой ситуации могут быть проводки с содержанием "корректировка списания" на сумму которая не закрывается, в конце движений закрытия месяца
Виктория91,
30.10.19, 15:48 В какой версии Розницы для Украины появилось поле кода УКТЗЕД?
Nevermore @ Вчера, 19:08 * ,
Действительно нету и в последней 2.2.7. Я думаю связано с тем что в розничной торговле нигде не требуется указание кодов УКТВЭД(в чеке и т.д.), а сама конфа предназначена чисто для фронт-офиса, зачем его перегружать.
Nevermore,
15.10.19, 15:43 Как прописать процедуру для элементов формы в глобальном контексте
Цитата(Gigi @ 10.10.19, 16:25) *
Вот эту процедуру придется вставлять в каждую форму объекта.

Предлагаю всё же вставить в каждую форму
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
       ДопОбщийМодуль.ПриСозданииНаСервере(Элементы,Параметры,Отказ, СтандартнаяОбработка);
КонецПроцедуры

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

В противном случае при необходимости правки, нужно не забыть прошерстить каждую форму.
Gigi,
10.10.19, 13:56 Как прописать процедуру для элементов формы в глобальном контексте
Gigi @ Сегодня, 11:29 * ,
В типовых(унф, ерп) реализовано достаточно неплохо. Общий модуль, в каждой форме вызов одной и той же процедуры.
Например:
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    
    ПриЧтенииСозданииНаСервере();
    УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

    МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

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

А в модуле все процедуры изначально пустые. Хочешь, пили прям в модуле события форм всех доков, хочешь - вынеси в расширение и там пили.
#Область ЗаполнениеОбработчиковФормы

// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
//
// Параметры:
//     Форма - форма, из обработчика события которой происходит вызов процедуры.
//    см. справочную информацию по событиям управляемой формы.
//
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

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

// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
//
// Параметры:
//     Форма - форма, из обработчика события которой происходит вызов процедуры.
//    см. справочную информацию по событиям управляемой формы.
//
Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект) Экспорт
    
КонецПроцедуры

// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
//
// Параметры:
//     Форма - форма, из обработчика события которой происходит вызов процедуры.
//    см. справочную информацию по событиям управляемой формы.
//
Процедура ПередЗаписьюНаСервере(Форма, Отказ, ТекущийОбъект, ПараметрыЗаписи)Экспорт
    
КонецПроцедуры

// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
//
// Параметры:
//     Форма - форма, из обработчика события которой происходит вызов процедуры.
//    см. справочную информацию по событиям управляемой формы.
//
Процедура ПослеЗаписиНаСервере(Форма, ТекущийОбъект, ПараметрыЗаписи)Экспорт
    
КонецПроцедуры

#КонецОбласти
Gigi,
10.10.19, 13:28 Проблемы при заполнении накладной на основании реализации
Козлова Татьяна @ Сегодня, 11:46 * ,
Думаю программист здесь не поможет и ошибки именно в программе нет. Скорее всего была предоплата (по счету или договору, в зависимости от настроек договора) и на предоплату выписана НН. Отсюда и сообщение, что сумма неподтвержденных обязательств меньше суммы документа. Например счет на 10000, предоплата 4000 и НН на 4000, в реализации сумма будет 10000, но обязательства всего на 6000.
Предлагаю соглашаться на открытие формы обработки, в ней есть функция (кнопка) "изменить количество"- "пропорционально под сумму обязательств". Собственно такая же процедура должна была быть и при выписке НН на частичную предоплату.
Если предоплат нет или вы считает что их нет - нужно смотреть в отчет(на 100% не помню, но вроде он есть в УТ) "Ожидаемый и подтвержденный НДС продаж", в нём с детализацией до сделки видно на какие суммы уже были выписаны НН. Если и там непонятно - нужно лезть и смотреть регистры и движения документов.
Козлова Татьяна,
01.10.19, 23:25 В оборотке 281 сч не выводит название партий, только три точки
Helen1 @ Вчера, 18:12 * ,
Цитата(Helen1 @ 01.10.19, 18:12) *
обновление или переход через обновление, как вы пишите, может произвести человек не программист?

Если доработок в программе не было , то вполне доступно. У вас должны быть файлы обновлений или действующий договор сопровождения ИТС, но если никогда не делали подобные вещи лучше обратиться к специалисту.
В накладных лучше не подставлять вручную, может привести к "пересорту" партий и выровнять потом будет тяжелее.
Вот!!! Пока писал, вспомнил: аналитика партий будет заполняться только в случае если в настройках учетной политики установлен способ оценки стоимости запасов "ФИФО", если стоит "по средней" - партия всегда будет пустой. После изменений учетной политики также нужно перепровести документы.
Helen1,
01.10.19, 15:27 Створення кнопки на формі табличної частини, на основі якої буде заповнення з іншого документа
bandrah @ Сегодня, 15:53 * ,
Советую покопать в сторону внешней обработки заполнения ТЧ.
Вот очень хороший пример:
Пример внешней обработки заполнения ТЧ
только вместо выбора номенклатуры, вам нужен выбор документа, потом запрос по ТЧ Материалы одного документа и заполнение ТЧ текущего документа.А в таком запросе как у вас выберутся данные из всех документов ОтчетПроизводстваЗаСмену (запросом). И ЗаполнитьЗначенияСвойств() не сработает для табличных частей, только для реквизитов "шапки". Для копирования данных из одного документа в другой, можно делать так:
   
РасходнаяНакладная = Документы.РасходнаяНакладная.СоздатьДокумент();
    // заполняем реквизиты документа
    ЗаполнитьЗначенияСвойств(РасходнаяНакладная, ПриходнаяНакладная, , "Дата, Проведен, ПометкаУдаления");

    // заполняем табличную часть документа
    Для каждого СтрокаСоставаПриходнойНакладной из ПриходнаяНакладная.Состав Цикл
          
        СтрокаСоставаРасходнойНакладной = РасходнаяНакладная.Состав.Добавить();    

        // заполняем значения очередной строки табличной части
        ЗаполнитьЗначенияСвойств(СтрокаСоставаРасходнойНакладной, СтрокаСоставаПриходнойНакладной);      
    КонецЦикла;

взято из ИТС
bandrah,
01.10.19, 11:17 В оборотке 281 сч не выводит название партий, только три точки
Helen1 @ Сегодня, 11:28 * ,
Включение настройки только добавляет субконто в движения по регистру бухгалтерии. Если данная настройка была включена после начала работы с программой, то нужно перепровести все документы (те что касаются товаров) для того, чтобы в движениях появилась аналитика. "..." же означает просто пустую аналитику.

ps. Эта конфигурация уже не обновляется с апреля 2019 года, крайне рекомендую переходить на версию 2.0/2.1. Если только начали работу с программой - тем более лучше начинать на новой, если уже учёт вёлся, можно перейти простым обновлением
Helen1,
28.09.19, 19:49 Как добавить новый реквизит товара в табличную часть расходной накладной 1с 7.7 конф 7.7.003
ZUBR @ Сегодня, 19:38 * ,
В 7.7. надо всё проще, немного усложнили.
Процедура Виконав()       //расчет зп по документу
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
  ЗП = СуммаСНДС*0.4;
//или
  ЗП = СуммаСНДС*Товар.КЗП; // где "Товар" - имя колонки в ТЧ; "КЗП" - имя добавленного в товар реквизита
КонецЦикла;    
КонецПроцедуры

А в остальном, если по примерам не понятно и не получается, то без 100 грамм вашего 1cv7.md не разобраться.

В хитросплетениях не надо разбираться, всё должно происходить в форме документа в процедуре указанной в формуле поля ввода товара
ZUBR,
27.09.19, 17:13 Проблема с РегистрНакопления.<Имя регистра>.ОстаткиИОбороты
AlexeyTN @ Сегодня, 17:14 * ,
Действительно, отображаются все позиции по которым есть или обороты или остатки.
Нужно или добавить условие
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ЗаказыПоставщикамОстаткиИОбороты.ДоговорКонтрагента,
        |    ЗаказыПоставщикамОстаткиИОбороты.Номенклатура
        |ИЗ
        |    РегистрНакопления.ЗаказыПоставщикам.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ЗаказыПоставщикамОстаткиИОбороты
        |ГДЕ
        |    ЗаказыПоставщикамОстаткиИОбороты.КоличествоОборот <> 0";

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

AlexeyTN,
27.09.19, 8:31 Помогите понять принцип создания запросов в 1с 7.7 конф 7.7.00
ZUBR @ Вчера, 22:24 * ,
Для каждой группировки итоги (функции запроса) рассчитаны и доступны при обходе циклами.
Вот такую таблицу генерирует конструктор запроса:

и обработку результата запроса:
     Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать"); // это имя макета
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей Родитель
        Таб.ВывестиСекцию("Родитель");
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей Контрагент
            Таб.ВывестиСекцию("Контрагент");
            Пока Запрос.Группировка(3) = 1 Цикл
                // Заполнение полей ТМЦ
                Таб.ВывестиСекцию("ТМЦ");
                Пока Запрос.Группировка(4) = 1 Цикл
                    // Заполнение полей ТекущийДокумент
                    Таб.ВывестиСекцию("ТекущийДокумент");
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");

В каждом из вложенных циклов выводится своя область,но имя переменных в макете "Запрос.ИтогКоличество" и "Запрос.ИтогСумма" одинаково во всех строках. Показатели которые будут там выводится как раз зависят от группировки для которой они рассчитаны - фактически в цикле какого уровня была дана команда на заполнение и вывод этой области

Ещё нюанс, который наглядно видно на макете - на верхних уровнях ничего не известно о том что будет во вложенном цикле, поэтому на макете такая лесенка. В самом первом цикле мы можем вывести только Родителя(группировочное поле, а также его реквизиты), количество и сумму (функции).
ZUBR,
26.09.19, 20:27 Помогите понять принцип создания запросов в 1с 7.7 конф 7.7.00
ZUBR @ Сегодня, 20:39 * ,
группировки можно представить в виде дерева или вот таких "группировок" таблицы которая получается в результате выполнения запроса

в 7.7 в запросе должна быть как минимум одна группировка - это будет соответствовать простой таблице без "вложенностей".
2 группировки будут означать "дерево" из 2х уровней вложенности, 3 - из 3х и т.д.
Несмотря на то, что картинка из 1С8 и там принцип чуть другой, результат в отчете примерно такой же.

Также для каждой группировки рассчитываются функции запроса. На картинке например это Количество и Сумма
Примерно такой запрос мог быть для отчета как на картинке:
    
        Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент;
    |ТМЦ = Документ.РасходнаяНакладная.ТМЦ;
    |ТекущийДокумент = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Кво = Документ.РасходнаяНакладная.Кво;
    |СуммаСНДС = Документ.РасходнаяНакладная.СуммаСНДС;
    |Родитель = Документ.РасходнаяНакладная.Контрагент.Родитель;
    |Функция ИтогКоличество = Сумма(Кво);
    |Функция ИтогСумма = Сумма(СуммаСНДС);
    |Группировка Родитель;
    |Группировка Контрагент;
    |Группировка ТМЦ;
    |Группировка ТекущийДокумент;
    |Условие(ТМЦ в ВыбТМЦ);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей Родитель
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей Контрагент
            Пока Запрос.Группировка(3) = 1 Цикл
                 // Заполнение полей ТМЦ
                Пока Запрос.Группировка(4) = 1 Цикл
                    // Заполнение полей ТекущийДокумент
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;

если оставим обход запроса только по одной группировке - получим обычную таблицу без вложений
Пока Запрос.Группировка(1) = 1 Цикл

КонецЦикла;

в данном случае параметр функции Группировка() = 1 , это соответствует родителю, папке с клиентами.
получим таблицу такого вида (например у нас все клиенты находятся в группах: "покупатели мелкий опт" и "покупатели диллеры")

Родитель ИтогоСумма ИтогоКоличество
"покупатели мелкий опт" 23423,00 44
"покупатели диллеры" 1231545,00 444






ZUBR,
24.09.19, 21:03 Как настроить печатную форму в 1С 7.70.003 торговля склад для Украины?
ZUBR @ Сегодня, 21:53 * ,
Обратите внимание на пунктирные линии по горизонтали и вертикали, это границы печатной формы, передвигаются автоматически, достаточно активировать какую-то ячейку в колонке/строчке.

Нужно удалить эти пустые колонки и строки до ячеек с данными
takefive, ZUBR,
19.09.19, 13:37 Помогите понять принцип создания запросов в 1с 7.7 конф 7.7.00
ZUBR @ Сегодня, 2:11 * ,
Попробуйте
|Функция КолСис = Счетчик(Товар);


надо же сказать программе что мы будем считать )))

Макс1С @ Сегодня, 13:37 * ,
сорри, не досмотрел: через букву "ё"

|Функция КолСис = Счётчик(Товар);


В качестве примера предлагаю так переделать запрос:

Процедура Сформировать()    
    ЗапросСуммы = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "    
    |Период с НачДата по КонДата;
    |ОбрабатыватьДокументы Проведенные;
    |Инженер = Документ.РасходнаяНакладная.Инженер;
    |Товар = Документ.РасходнаяНакладная.Товар;
    |СтатусЗаказа = Документ.РасходнаяНакладная.СтатусЗаказа;
    |ВидТовара = Документ.РасходнаяНакладная.Товар.ВидТовара;
    |СуммаСНДС = Документ.РасходнаяНакладная.СуммаСНДС;
    |Функция Сум = Сумма(СуммаСНДС);
    |Функция КолСис = Счётчик(Товар);
    |Группировка Инженер;
    |Группировка Товар Без Групп;
    |Условие ((СтатусЗаказа = Перечисление.Статусы.Выдан)или(СтатусЗаказа = Перечисление.Статусы.Выезд));
    |Условие (ВидТовара = Перечисление.ВидыТоваров.Услуга);";
          
    Если ЗапросСуммы.Выполнить(ТекстЗапроса) <> 1 Тогда
        // если по какой-то причине запрос не выполнился
        Сообщить("Ошибка выполнения запроса");
        Возврат;
    КонецЕсли;
    
    Пока ЗапросСуммы.Группировка(1) = 1 Цикл    // обходим первую по порядку группировку "Инженер"
        Сотрудник = ЗапросСуммы.Инженер;
        // на этом этапе выражение ЗапросСуммы.Сум будет равна сумме всех услуг оказанных данным инженером    
        
        Пока ЗапросСуммы.Группировка(2) = 1 Цикл   // для каждого инженера обходим группировку "Товар"
            СуммаУслуг = ЗапросСуммы.Сум;
            КолСис = ЗапросСуммы.КолСис;
            
            Услуга = ЗапросСуммы.Товар;
            
            Сообщить(Сотрудник);
            Сообщить(Услуга);
            Сообщить(СуммаУслуг);
            Сообщить(КолСис);
        КонецЦикла;    
    КонецЦикла;  
КонецПроцедуры


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

и таких группировок и вложенных циклов может быть сколько угодно.
к тому же такое исполнение (всё что можно выбрать в запросе, выбираем в запросе) является более "правильным" с точки зрения методологии разработки, да и работать должно быстрее чем выполнение запроса внутри цикла.
ZUBR,
15.09.19, 23:56 В чем ошибка условия? 1С 7.70.003 торговля склад для Украины?
ZUBR @ Вчера, 23:13 * ,
во-первых: Сообщить() возвращает строковое представление, для справочников это по-умолчанию наименование.
во-вторых: без отладчика точно сказать по куску кода невозможно, как писали выше.
в 3-х: .Наименование - просто реквизит справочника(надеюсь Сотрудники)

из всего этого выплывает: возможно в документе тип не Сотрудник, а Пользователи например, и мы сравниваем только названия разнотипных справочников (что в целом не очень хорошо)
даже если справочник правильный, может быть ситуация когда случайно задублировали сотрудника - в таблицу попадет 2 одинаковых строки и для каждого будет суммарное количество документов.

Поэтому сравнивать, конечно, лучше ссылки и правильный код тогда:
ТЗ.Сотрудник = Спр.ТекущийЭлемент();
//////
......
//////
Если ТЗ.Сотрудник = Расх.Инженер Тогда

, проверив отладчиком типы, или сделать запросом.



без отладчика можно проверить так:

  Сообщить("Инж:"+ Расх.Инженер.Вид());
  Сообщить("Сотр:"+ ТЗ.Сотрудник.Вид());
ZUBR,
15.09.19, 20:23 В чем ошибка условия? 1С 7.70.003 торговля склад для Украины?
Это, конечно, не решение описанной ошибки, но решения для достижения результата - ТЗ со списком у какого из инженеров сколько документов. Возможно кто-то поправит, не помню есть ли в 7.7 в запросе функция по аналогии с "Количество различных", кажется нет, поэтому складываю количество в обработке запроса.

Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Автор = Документ.РасходнаяНакладная.Автор;
    |ТекущийДокумент = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Группировка Автор;
    |Группировка ТекущийДокумент;
    |"//}}ЗАПРОС
;

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
                  
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    
    ТЗ.НоваяКолонка ("Сотрудник");
    ТЗ.НоваяКолонка ("КолСис");   // количество систем
    
    Пока Запрос.Группировка(1) = 1 Цикл
        ТЗ.НоваяСтрока();
        ТЗ.Сотрудник = Запрос.Автор;

        К = 0;
        Пока Запрос.Группировка(2) = 1 Цикл
            К = К + 1;
        КонецЦикла;
        
        ТЗ.КолСис = К;
    КонецЦикла;


а в целом в такой ситуации, когда непонятно почему так происходит - отладчик в помощь, точку останова на "Если ТЗ.Сотрудник = Расх.Инженер" и смотреть что в одном поле и в другом. Но в первую очередь - согласен с предыдущим оратором - типы разные, строка сравнивается со справочником. Как варик - привести всё к строкам:
ТЗ.Сотрудник = Спр.Наименование;
//////
......
//////
Если ТЗ.Сотрудник = Расх.Инженер.Наименование Тогда
ZUBR,
12.09.19, 11:49 Суммирует номенклатуру приложения 2 к НН при вигрузке в xml или FREDO
Sirius83 @ Сегодня, 12:42 * ,
Корректировка заполнена неверно и ДФС не примет её. Обязательно нужно заполнить колонки в 1С:
номер строки НН - изменения в порядке заполнения ещё с 01.04.2018 если не ошибаюсь
код причины и № группы корректировки - эти изменения порядка заполнения этого года.

Для помощи в заполнении есть кнопка вверху "Преобразовать", инструкция есть в описании к обновлению (Справка - Дополнение к описанию)
В двух словах - на основании возвратной делаем Прил2, заполняется одна строчка, после преобразования программа разобьет на 2(в случае частичного возврата) и заполнит новые, обязательные колонки

ps. Бухгалтеру обязательно проштудировать Порядок заполнения НН и Приложений 2, и таких вопросов возникать не будет.
Sirius83,
12.09.19, 11:25 Другие контакты в Адреса Организации и Контрагенти
bandrah @ Вчера, 11:57 * ,
Данные сохраняются в табличной части "Контактная информация" справочника, если речь идет о новых конфигурациях Бухгалтерия 2.0/2.1, УТ 3.1, BAS ERP и т.д.
bandrah,
10.09.19, 19:07 Работает ли у вас Клиент-банк Приват + Бухгалтерия 1.2? Ждать ли обновления Бух 1.2?
andreykyiv@bigmir.net @ Сегодня, 16:32 * ,
Дело в том что поменялось несколько моментов в файлах импорта из привата:
1. Имя файла больше 8 символов, 1С до сих пор не умеет их открывать. Обход - переименовываем.
2. Р/счет организации теперь всегда в одной колонке (COUNT_A)
3. Р/счет может быть как в формате IBAN так и в старом
4. Поменялся формат даты платежа
5. Поменялось обозначение вида операции (приход/расход)

В большинстве обработок на основе распространяемой АБИ (Конто) где под каждый формат банка используется мини-обработка достаточно поменять несколько строк.

Функция ИмпортDBF(Параметры)
    ФайлDBF = Новый XBase;
    ФайлDBF.Кодировка = КодировкаXBase[Параметры.КодировкаФайла];    //DOS
    
    ИмяФайла = Параметры.ИмяФайла;
    
    Попытка
        ФайлDBF.ОткрытьФайл(ИмяФайла,,Истина); //Только для чтения
    Исключение
        Предупреждение("Ошибка открытия файла " + ИмяФайла);
        Возврат Неопределено;
    КонецПопытки;        
    
    Если НЕ ФайлDBF.Открыта() Тогда
        Предупреждение("Ошибка открытия файла " + ИмяФайла);
        Возврат Неопределено;
    КонецЕсли;
    
    тзВыписка =  Новый ТаблицаЗначений;
    тзВыписка.Колонки.Добавить("НомерПП");
    тзВыписка.Колонки.Добавить("Приход");
    тзВыписка.Колонки.Добавить("Расход");
    тзВыписка.Колонки.Добавить("ОКПО");
    тзВыписка.Колонки.Добавить("Контрагент");
    тзВыписка.Колонки.Добавить("МФО");
    тзВыписка.Колонки.Добавить("РСчет");
    тзВыписка.Колонки.Добавить("Содержание");
    
    ФайлDBF.Первая();
    Пока НЕ ФайлDBF.ВКонце() Цикл
        // проверка на дату платежа
        Если ФайлDBF.DATE <> Параметры.ДатаДок И СокрЛП(ФайлDBF.DATE) <> Формат(Параметры.ДатаДок,"ДФ=dd.MM.yyyy") Тогда
            ФайлDBF.Следующая();
            Продолжить;
        КонецЕсли;    
        
        НомерСчетаА = СокрЛП(ФайлDBF.COUNT_A);
        НомерСчетаБ = СокрЛП(ФайлDBF.COUNT_B);
        
        Если СтрДлина(НомерСчетаА) = 14 Тогда
            ПоискСчета = НомерСчетаА;
        Иначе
            ПоискСчета = Прав(НомерСчетаА,14);
        КонецЕсли;
                
        Если Найти(Параметры.Рсчет,ПоискСчета) = 0 Тогда
            ФайлDBF.Следующая();
            Продолжить;
        КонецЕсли;
        
        Если СокрЛП(ФайлDBF.TIP) = "D;R;" Тогда
            НовСтрока = тзВыписка.Добавить();
            НовСтрока.РСчет            = СокрЛП(Формат(НомерСчетаБ,"ЧГ=0"));
            НовСтрока.МФО             = СокрЛП(Формат(ФайлDBF.MFO_B,"ЧГ=0"));
            НовСтрока.ОКПО            = СокрЛП(Формат(ФайлDBF.OKPO_B,"ЧГ=0"));
            НовСтрока.Контрагент    = СокрЛП(ФайлDBF.NAME_B);
            НовСтрока.Приход        = 0;
            НовСтрока.Расход        = -ФайлDBF.SUMMA;
        ИначеЕсли СокрЛП(ФайлDBF.TIP) = "C;R;" Тогда
            НовСтрока = тзВыписка.Добавить();
            НовСтрока.РСчет            = СокрЛП(Формат(НомерСчетаБ,"ЧГ=0"));
            НовСтрока.МФО             = СокрЛП(Формат(ФайлDBF.MFO_B,"ЧГ=0"));
            НовСтрока.ОКПО            = СокрЛП(Формат(ФайлDBF.OKPO_B,"ЧГ=0"));
            НовСтрока.Контрагент    = СокрЛП(ФайлDBF.NAME_B);
            НовСтрока.Приход        = ФайлDBF.SUMMA;
            НовСтрока.Расход        = 0;
        Иначе    
            ФайлDBF.Следующая();
            Продолжить;
        КонецЕсли;
        
        НовСтрока.НомерПП             = СокрЛП(ФайлDBF.N_D);
        НовСтрока.Содержание         = СокрЛП(СтрЗаменить(ФайлDBF.N_P,Символы.ПС," "));
        
        ФайлDBF.Следующая();
    КонецЦикла;    
    
    Если НЕ тзВыписка.Количество() И ФайлDBF.КоличествоЗаписей() Тогда
        Предупреждение("В текущем файле нет платежей с данной датой выписки и расчетным счетом!");
    КонецЕсли;
    
    ФайлDBF.ЗакрытьФайл();
    
    Возврат тзВыписка;
    
КонецФункции


kihor @ Сегодня, 17:58 * ,
Кстати да. Уже можно переводить на 2.1 BAS Бухгалтерию))

В Бухгалтерии 1.2 нужно не забыть увеличить длину поля НомерСчета в справочнике Банковские счета до 29 символов
andreykyiv@bigmir.net, vadim1c,

3 страниц V  < 1 2 3 >
RSS Текстовая версия Сейчас: 19.04.24, 6:57
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!