Module: S41C::Utils

Included in:
Client, Sandbox, Server
Defined in:
lib/s41c/utils.rb

Instance Method Summary collapse

Instance Method Details

#get_1c_id(obj) ⇒ String

Обертка над 1С-функцией “ЗначениеВСтрокуВнутр”

Parameters:

  • объект (Object)

Returns:

  • (String)

    идентификатор объекта



35
36
37
38
39
40
41
# File 'lib/s41c/utils.rb', line 35

def get_1c_id(obj)
  return false unless @ole

  str_id = to_utf8 @ole.invoke('ЗначениеВСтрокуВнутр', obj)
  escaped_str_id = "\"#{str_id.gsub('"', '""')}\""

end

#to_bin(str) ⇒ String

Переводит строку в бинарное представление

Parameters:

  • строка (String)

    в utf-8

Returns:

  • (String)

    строка в бинарном представлении



12
13
14
# File 'lib/s41c/utils.rb', line 12

def to_bin(str)
  str.to_s.force_encoding("BINARY")
end

#to_utf8(str) ⇒ String

Переводит строку в utf-8

Parameters:

  • бинарная (String)

    строка или строка из 1С

Returns:

  • (String)

    строка в utf-8



21
22
23
24
25
26
27
28
# File 'lib/s41c/utils.rb', line 21

def to_utf8(str)
  return unless str.is_a?(String)
  if str.encoding.to_s == "IBM866"
    str.to_s.encode("UTF-8", "IBM866", :invalid => :replace, :replace => "?")
  else
    str.to_s.force_encoding("UTF-8")
  end
end