Все способы определения не заданной даты в 1С

В текстах модулей

  1. Если Дата = ‘00010101Тогда
  2. Если Дата = ‘00010101000000Тогда
  3. Если Дата = ‘00010101Тогда
  4. Если Дата = Дата(1, 1, 1) Тогда
  5. Если Дата = Дата(1, 1, 1, 0, 0, 0) Тогда
  6. Если Не ЗначениеЗаполнено(Дата) Тогда

В запросах

  1. ГДЕ Дата = ДАТАВРЕМЯ(0001,01,01,0,0,0)
  2. ГДЕ Дата = ДАТАВРЕМЯ(1,1,1)
  3. ГДЕ Дата = &ПустаяДата 

Запрос.УстановитьПараметр(«ПустаяДата«, ‘00010101‘);

mysqli(): Server sent charset (255) unknown to the client. Please, report to the developers

Сия ошибка происходит если сервер mysql новый (например 8.х), а клиент старый (например php 5.6). Скорее всего они еще и к тому же разнесены на разные сервера. Что такое? А просто разные кодировки по умолчанию у клиента и сервера.

Как лечить, есть два варианта

1) Обновить клиент — т.е. php и mysql-client

2) Проставить в настройках сервера mysql принудительные кодировки по умолчанию

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

1С: Прикрепляемые файлы к документу

Задача: организовать прикрепление и хранение файлов в документе. Желательно используя «штатный велосипед» 1С.

Решение:

Всё зависит от БСП на основе которой построена Ваша конфигурация. В моем случае, конфигурация Бухгалтерия 3.0.75.100, БСП 3.1.25

Узнать версию БСП можно при помощи:

Сообщить(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());

Далее если есть подписка на ИТС, читаем тут или если нет, то у меня 😉

1) Чтобы ручками не заполнять все реквизиты, копируем справочник «ПередачаТоваровПрисоединенныеФайлы», копию переименовываем в <ИмяМоегоДокумента>ПрисоединенныеФайлы. В моем случае документ носит имя «Абоненты». Далее на скриншотах и в тексте я его так и буду называть. В Вашем случае это будет Ваш справочник/документ.

В реквизите «ВладелецФайла» указываем наш документ

2) В состав определяемых типов ПрисоединенныйФайл (ссылки) и ПрисоединенныйФайлОбъект (объекты) добавим наш документ:

3) Включить в состав плана обмена ОбновлениеИнформационнойБазы

4) Добавить источники у подписк и «ПереопределитьПолучаемуюФормуПрисоединенногоФайла» и «УстановитьПометкуУдаленияПрисоединенныхФайловДокументов»

5) Добавить в состав определяемых типов ВладелецПрисоединенныхФайлов (ссылки) и ВладелецПрисоединенныхФайловОбъект (объекты)

Если перед закрытием формы объекта-владельца файлов требуется проверить наличие занятых текущим пользователем файлов, то необходимо:

  • Добавить реквизит формыМожноЗакрытьФормуСФайламитипа Булево.
  • В обработчике формыПередЗакрытиемвставить вызов процедуры ПоказатьПодтверждениеЗакрытияФормыСФайлами общего модуля РаботаСФайламиКлиент по шаблону:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПоказатьПодтверждениеЗакрытияФормыСФайлами(ЭтотОбъект, Отказ, Объект.Ссылка);
КонецПроцедуры
  • Другой код, который необходимо выполнять в обработчикеПередЗакрытием, следует размещать после вызова процедуры и проверки параметраОтказ. Например:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    РаботаСФайламиКлиент.ПоказатьПодтверждениеЗакрытияФормыСФайлами(ЭтотОбъект, Отказ, Объект.Ссылка);
    Если Отказ Тогда
        Возврат;
    КонецЕсли;
    <другой код...>
КонецПроцедуры

Результат: появившаяся «скрепочка» и список файлов по её нажатии.

Всё хорошо, одно плохо. Не понятно как это всё будет себя вести при обновлении. Предполагаю что галочки эти нужно будет расставлять каждый раз.

1С: Выбор адреса в форме документа

Исходные данные: 1С Бухгалтерия 3.0.75.100, платформа 8.3.16.1063

В одной из задач, понадобилось вбивать валидный адрес (на основе КЛАДР) в одно из полей документа. Было принято решения использовать для этого стандартный функционал 1С.

Результат работы будет выглядеть как-то так:

Итак, последовательность работ:

1) В справочнике «Виды контактной информации», добавляем предопределенный значения «ДокументАбоненты» и «АдресТочкиПодключения». Собственно первое, это название документа в котором будет отображаться форма, и второе — что именно мы храним:

2) В документе создаем табличную часть «Контактная информация» (можно скопировать например из справочника «Торговые точки»)

3) На форме документа располагаем пустую группу с именем «ГруппаКонтактнаяИнформация»

4) В модуль формы копируем:

// СтандартныеПодсистемы.КонтактнаяИнформация

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
	УправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент,, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
	УправлениеКонтактнойИнформациейКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда.Имя);
КонецПроцедуры

&НаСервере
Процедура ОбновитьКонтактнуюИнформацию(Результат)		
	УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);

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

&НаКлиенте
Процедура Подключаемый_ПродолжитьОбновлениеКонтактнойИнформации(Результат, ДополнительныеПараметры) Экспорт
	
	ОбновитьКонтактнуюИнформацию(Результат);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	УправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	УправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

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

&НаСервере
Процедура ПриЗакрытииНаСервере()	
	Адрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Объект.Ссылка,Справочники.ВидыКонтактнойИнформации.АдресТочкиПодключения);
	если Адрес<>"" тогда
		об=Документы.Абоненты.НайтиПоНомеру(объект.Номер).ПолучитьОбъект();		
		об.АдресПодключения=Адрес;
		об.Записать();
		объект.АдресПодключения=Адрес;			
	конецесли;	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	ПриЗакрытииНаСервере();
КонецПроцедуры

// Конец СтандартныеПодсистемы.КонтактнаяИнформация