Тип сравнения в 1с
Сп=НОвый СписокЗначений;
Сп.Добавить("Oклад по дням","Oклад по дням");
Спр=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Выбрать( );
пока спр.Следующий() цикл
Если не Сп.НайтиПоЗначению(Спр.Наименование)=СПр.Наименование тогда
рр=спр.ПолучитьОбъект();
рр.ПометкаУдаления=Истина;
КонецЕсли;
КонецЦикла;
Сравнение значений поля и списка, поиск отсутствующих значений
Добрый день. Подскажите по следующему вопросу: Есть таблица в базе данных, она содержит 550к.
Сравнение значений, добавление значений
Здравствуйте. Можно ли проделать следующую операцию в Excel? Есть два файла с данными. В первом.
Выпадающий список с отображением отфильтрованных значений, на основе введённых значений в ячейке
Всем доброго времени суток. Если повторюсь с темой просьба сильно не пинать, форум смотрел, не.
Когда же, уже перед тем как задать вопрос, народ научится хотя бы в СП заглянуть.
Тип: Произвольный.
Выражение со значением, которое требуется найти.
Возвращаемое значение:
Тип: ЭлементСпискаЗначений, Неопределено.
Метод возвращает Неопределено или ЭлементСпискаЗначений, а Вы сравниваете возвращенный результат со строкой! Условие никогда не выполнится!
переделал
Сп=НОвый СписокЗначений;
Сп.Добавить("Oклад по дням","Oклад по дням");
Сп.Добавить("Доплата за разовые часы (язык)","Доплата за разовые часы (язык)");
Спр=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Выбрать( );
пока спр.Следующий() цикл
Если сп.НайтиПоЗначению(спр.Наименование)=Неопределено тогда
рр=спр.ПолучитьОбъект();
рр.ПометкаУдаления=Истина;
рр.Записать();
КонецЕсли;
КонецЦикла;
Есть как всегда НО, не идет. помечает только один элемент "Oклад по дням", а вторую не видит или .
Добавлено через 13 минут
мне надо , чтобы пометить на удаление те виды расчета которые нету у меня в списке. Может есть другие способы.
Что все таки нужно сделать то?
Сравнение по наименованию весьма ненадежная конструкция. Могут быть пробелы лишние, латинские символы и т. д. Поэтому сравнивать желательно ссылочные данные.
Если не возможно в список добавлять ссылки напрямую, то нужно делать хотя бы так:
Когда-то давным-давно, лет 10 лет назад, когда конфигурации были простыми и понятными, мало кто задумывался о необходимости сравнения объектов (с точки зрения разработчика). Все реквизиты (или почти все) были на форме, их было мало, программно создать нужный справочник (документ и т.п.) не представляло особого труда.
Шло время, программы становились тяжелее и сложнее, количество реквизитов увеличивалось, программисты начинали напрягаться. И вот настал этот день. День, когда найти отличия в 2-х (или более) объектах без специальных инструментов уже невозможно (или очень сложно).
Обработка "Сравнение объектов" позволяет выполнить сравнение неограниченного количества объектов разных видов между собой. Результат сравнения отображается в виде дерева и содержит значения только отличающихся реквизитов. Реквизиты сгруппированы в группы: "Стандартные реквизиты", "Реквизиты" и "Табличные части". Сравнение движений не выполняется.
Один из возможных сценариев использования
Уже несколько лет постоянно (почти ежедневно) я использую конфигурацию «1С:Конвертация данных, ред. 2.1», разрабатываю и поддерживаю довольно сложные правила. Например, сейчас разрабатываются правила конвертации данных "Камин:Расчет заработной платы. Версия 3.0" - "1С:Зарплата и Управление персоналом, ред. 3.0". Главная сложность при этом - невозможность сопоставления объектов напрямую, т.к. конфигурации отличаются очень сильно. Поэтому приходится сначала создавать объект соответствующего вида в ЗУП, анализировать состав его реквизитов, и только затем - создавать ПКО, ПКС и ПКЗ. А если документы одного вида сильно отличаются? А если с первого раза не удалось отследить все зависимости, условия, нюансы?
Вот тут и приходит на помощь эта разработка. Вы создаете эталонный объект (элемент справочника, документ и т.п.) и сравниваете его с перенесенным по правилам. Все различия тут же становятся очевидны. Отладка правил становится гораздо проще!
Как сравнить объекты
Предположим, нам нужно найти отличия в 2-х документах. Один из них перенесен по правилам обмена, другой - создан интерактивно. Откроем обработку сравнения, укажем документы, которые нужно сравнить, нажмем кнопку "Выполнить сравнение". Если различия будут найдены, появится табличное поле дерева сравнения со списком отличающихся реквизитов. Как видим, различия есть, необходимо доработать правила обмена.
Отличие этого инструмента от аналогичных, уже публиковавшихся на Инфостарте
- Количество сравниваемых объектов не ограничивается.
- Сравниваться могут как объекты одного вида, так и разных.
- Результаты сравнения группируются в логические группы.
- Построчное сравнение реквизитов табличных частей.
- Показываются только различающиеся реквизиты.
- Простота использования
P.S. Скачайте обработку "Сравнение объектов (управляемые формы)" и используйте в своих проектах, чтобы упростить себе работу!
В 1С очень много предопределенных типов значений, их можно подразделить на несколько групп.
Группы типов данных
- простые (примитивные) типы
- типы-объекты и их подчиненные
- типы-объекты из метаданных (прикладные типы)
- интерфейсные типы
- прочие типы общего назначения
Простые типы
- Строка (задается значением в кавычках «»)
- Число (Задается десятичным числом)
- Дата (дата и время)
- Булево (Истина,Ложь.
Типы-объекты
- Коллекции значений (Массивы, Структуры, ТаблицыЗначений и другие)
- Интеграционные (Com, файлы, внешние объекты, zip, WS)
- Общего назначения
Объекты из метаданных (прикладные)
- Константы
- Справочники
- Документы
- Перечисления
- Отчеты
- Обработки
- Планы счетов
- Задачи
- Регистры сведений
- Регистры накоплений
- Регистры бухгалтерского учета
- и другие…
Интерфейсные
Связанные с окнами, формами и элементами форм (полей, надписей, табличных данных и других)
Другие варианты подразделения значений
- Значения, которые можно записать в реквизит объекта (в поле информационной базы) и те, которые нельзя
- Объекты, которые можно визуально представить, и те, которые имеют виртуальную сущность
- Типы значений которые, связаны с конфигурацией и ее объектами или работающие обособленно
- Которые могут быть разграничены по правам пользователей- не могут
- Могут достаточно просто преобразовываться — либо требуется вспомогательная конвертация
- Есть свойства и методы — либо отсутствуют
Задание типов значений
Значение может быть установлено:
Непосредственно
Через создание объекта
Через результат вызова системной функции
Через обращение к свойству объекта
Составные и простые типы
Если не указано специально, то тип значений не ограничивается.
В случае реквизитов объектов метаданных, тип значений задается на этапе конфигурирования из типов доступных к записи (примитивные, ссылки на объекты, хранилище значений), а так же от вида объекта и контекста(среды, места) исполнения. При этом доступно ограничение реквизита одним типом или несколькими. Например, нам необходимо записывать в одно поле, либо значение «строки», либо «числа».
Для других объектов, тип реквизитов может остаться не ограниченными (произвольного типа), либо ограничен через специальный тип «ОписаниеТипов«
Например, для простого случая
Данный объект также используется для ограничения выбора или внесения данных в диалоговых формах
Приведение значений
Производится автоматически при присвоении к реквизиту (свойству) объекта, если данный реквизит не может хранить данное значение
Также при операциях конкатенации, производится к сначала первому слагаемому, при вычитании, если допустимо, ко втором, а затем уже к результату.
Такие «сложные» преобразования требуется проводить с осторожностью.
Приведение значений через встроенные функции преобразования
Следует обратить внимание, что некоторые преобразования система не сможет сделать, и это вызовет ошибку исполнения, поэтому проверка должна производится разработчиком
Проверка типов
Сравнение производится через специальные функции ТипЗнч() и Тип().
Первая возвращает значение передаваемого типа, вторая задает тип для проверки
ЭтоЧисло = 15; //ответ на вопрос: тип значения переменной "ЭтоЧисло" является ли типом "Число" ЭтоБулево = ТипЗнч(ЭтоЧисло) = Тип("Число"); //Первый знак "=" - присвоение //Второй " i-11">Сравнение значений
Более подробно на типах останавливаться не буду, лучше их прочувствовать в реальных задачах или узких примерах
Большой рекламный бюджет не ведет к высокому уровню сбыта. Наоборот, высокий уровень сбыта ведет к большому рекламному бюджету.
— К. Мейсон
Для работы с типами в запроса для сравнения и отборов существует две функции: ТИП() и ТИПЗНАЧЕНИЯ(), а также конструкция ССЫЛКА для ссылочных типов. В общем случае тип значения применяется для работы с составными полями, так как в других случаях тип значения известен заранее или не меняется.
Примеры проверки типа в запросах:
Получить тип в полях выборки:
ВЫБРАТЬ ТИП(Строка), ТИП(Справочник.Контрагенты)
Получить совпадение типа в выборке
Выбрать ТИПЗНАЧЕНИЯ(Ссылка) = ТИП(Справочник.Контрагенты)
Отбор по типу значения:
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты ГДЕ ТИПЗНАЧЕНИЯ(ОсновнойМенеджер) = ТИП(Справочник.ФизическиеЛица)
Использование конструкции ССЫЛКА:
ВЫБРАТЬ ИНН ИЗ Справочник.Контрагенты ГДЕ ОсновнойМенеджер ССЫЛКА Справочник.ФизическиеЛица
Последние две конструкции идентичны по результату исполнения, но последняя применима только к ссылочным типам, что не всегда так, но более компактна.
Допустимо использование данных конструкций и в качестве условия для соединения таблиц.
На тип значения можно проверять не только поля из выборки запроса, но и параметры:
ВЫБРАТЬ * из Справочник.Контрагенты ГДЕ ТИПЗНАЧЕНИЯ(&Параметр) = ТИП(Справочник.Контрагенты)
Параметром функции ТИПЗНАЧЕНИЯ могут выступать:
СТРОКА, ЧИСЛО, ДАТА, а также все ссылочные типы.
Чтобы проверить на несколько значений применяется условие ИЛИ или множество В()
ВЫБРАТЬ Ссылка ИЗ Справочник.Пользователи ГДЕ ФизЛицо ССЫЛКА Справочник.ФизическиеЛица ИЛИ Физлицо ССЫЛКА Справочник.Пользователи
ВЫБРАТЬ Ссылка ИЗ Справочник.Пользователи ГДЕ ТИПЗНАЧЕНИЯ(Физлицо) В (ТИП(Справочник.ФизическиеЛица),ТИП(Справочник.Пользователи))
При сравнении ссылочных типов пустые ссылки, также дают совпадение, то есть для проверки на заполненность они применимы только как вспомогательные функции
Выбрать * ИЗ Справочник.Пользователи ГДЕ ТИПЗНАЧЕНИЯ(Физлицо) <> ТИП(Неопределено) И ТИПЗНАЧЕНИЯ(Физлицо) <> ТИП(NULL) И НЕ Физлицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
Легче сочинить 10 правильных сонетов, чем хорошее рекламное объявление.
— Олдос Хаксли
Теперь по каждому из этих регистров мне нужно узнать, используется ли в качестве измерения, реквизита или ресурса "СтатьяФинансирования"? Вот здесь появляется проблема, не знаю как сравнить тип, чтобы проверить. Перепробовал много комбинаций, ничего не получается. Помогите пожалуйста!
Сравнение реквизитов
Имеется ли такая возможность сравнения реквизитов документа? Вроде обычное сравнение не помогает
Сравнение двух значений реквизитов
Вопрос такого характера. В шапке формы документа имеется реквизит с типов поле ввода (название-.
1C 8.x Сравнение реквизитов из табличной части одного документа с реквизитом другого
Доброго времени суток! Имеются 2 документа, в одном реквизит "Покупатель" находится в табличной.
Заполнение реквизитов строки ТЧ документа заченями реквизитов выбранного элемента
Здравствуйте. Запнулся вроде бы на простой задаче - забыл как делается. Суть задачи: есть в.
Для каждого Строка Из ПолучитьМетаданные Цикл
Строка зарезервированное слово, не надо бы его использовать в качестве переменной
Добавлено через 9 минут
Если Элемент.Тип=Тип("СправочникСсылка.СтатьиФинансирования") Тогда
Вот до этого варианта уже сам дошел, но все равно спасибо)
Добавлено через 1 минуту
Сравнение регистра
Здравствуйте, помогите решить такую проблему: поставлена задача: вычислить значение определенного.
Сравнение символа и регистра
Всем привет! Возник такой вопрос: Нужно сравнивать код ascсi символа и значение лежащее в.
Сравнение ячеек с учётом регистра
Добрый день! Имеется 2 столбца с данными. Например: 1 столбец - яблоко, Груша, Слива 2 столбец -.
Читайте также: